1.
let d1 = Object.getOwnPropertyDescriptor({name: "hello"}, 'name');
console.info(d1);
为什么打印出来是
{ value: 'hello',
writable: true,
enumerable: true,
configurable: true }
而通过Object.defineProperties()定义的属性,这几个默认就是false
1.
let d1 = Object.getOwnPropertyDescriptor({name: "hello"}, 'name');
console.info(d1);
为什么打印出来是
{ value: 'hello',
writable: true,
enumerable: true,
configurable: true }
而通过Object.defineProperties()定义的属性,这几个默认就是false
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
这个问题在MDN上 defineProperty 有解释,摘录如下:
var a = {}; a.name='hello';
,实际是赋值操作),能够在属性枚举期间呈现出来(for...in 或 Object.keys 方法), 这些属性的值可以被改变,也可以被删除。