《JS高程第三版》第六章关于对象属性那部分,提到的属性的几个特征,无论是数据属性还是访问器属性,他们的默认值都是true
比如
[[configurable]][[enumerable]]等等这些的默认值书上写的是true
但是 在MDN上面的说法却是false 所以
我有点晕
MDN:
https://developer.mozilla.org...
《JS高程第三版》第六章关于对象属性那部分,提到的属性的几个特征,无论是数据属性还是访问器属性,他们的默认值都是true
比如
[[configurable]][[enumerable]]等等这些的默认值书上写的是true
但是 在MDN上面的说法却是false 所以
我有点晕
MDN:
https://developer.mozilla.org...
你这个MDN的文档,是讲Object.defineProperty的api,默认为false。
比如
var obj = {};
Object.defineProperty(obj, 'a', { value: 20 });
obj.value; // 20
obj.value = 15;
obj.value; // 20
Object.keys(obj); // []
使用这个api,没有configurable和enumerable时,这两个参数默认值是false。
而高程上面讲的是一个对象属性的默认值,类似于这种。
var obj = {
a: 20,
};
这个a属性是可枚举的可修改的
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答895 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
MDN :
意思是,如果你通过
Object.defineProperty()
创建新属性,省略描述符的某些字段,如果值为布尔型,则为 false;如果你不通过
Object.defineProperty()
创建新的属性,而是通过对象字面量创建属性,默认值为 true ,高程说的没问题;另外,底层操作现在可以转移到
Reflect
对象上来操作;