在读一本JavaScript书时,我读到了
"直接在对象" 上定义时,数据属性的所有属性都默认为true。
然后经过一些描述再次说明
"当您使用Object.defineProperty()" 时,可配置,可枚举和的值 除非另有说明,否则可写默认为false。
我想,在第一个声明"直接在一个对象上定义"表示使用点运算符或对象文字符号,如下所示:
var obj = new Object();
obj.name = "Mahesh";
但是,在通过任一方法将属性添加到对象后,是否有任何方法可以尝试检查这些属性的设置?
答案 0 :(得分:3)
您可以使用getOwnPropertyDescriptor
:
> var desc = Object.getOwnPropertyDescriptor(obj, 'name');
{"value":"Mahesh","writable":true,"enumerable":true,"configurable":true}
desc
将包含标记configurable
和enumerable
。如果属性是数据描述符(无get
或set
),则desc
还将包含value
和标记writable
。如果属性是访问者描述符,desc
还将包含get
和set
方法。