为了账号安全,请及时绑定邮箱和手机立即绑定

对象数据和访问器可配置和可枚举特性默认的不是true吗?

对象数据和访问器可配置和可枚举特性默认的不是true吗?

慕勒3428872 2018-11-13 17:14:31
    var book = {};        Object.defineProperties(book, {        _year: {            value: 2004        },                edition: {            value: 1        },                year: {                        get: function(){                return this._year;            },                        set: function(newValue){                if (newValue > 2004) {                    this._year = newValue;                    this.edition += newValue - 2004;                }                              }                    }            });           var descriptor = Object.getOwnPropertyDescriptor(book, "_year");    alert(descriptor.value);          //2004    alert(descriptor.configurable);   //false    alert(typeof descriptor.get);     //"undefined"        var descriptor = Object.getOwnPropertyDescriptor(book, "year");    alert(descriptor.value);          //undefined    alert(descriptor.enumerable);     //false    alert(typeof descriptor.get);     //"function"    
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

对象默认的可配置属性和可枚举属性是true吧

这个没错,但是这个指的是不使用defineProperty或者defineProperties的时候,使用它们的时候,那两个属性默认为false

Enumerable properties are those properties whose internal [[Enumerable]] flag is set to true, which is the default for properties created via simple assignment or via a property initializer (properties defined via Object.defineProperty and such default [[Enumerable]] to false).

defineProperties


查看完整回答
反对 回复 2018-12-21
  • 1 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信