查看此MDN页面上给出的示例
const o = {a: 0};
Object.defineProperty(o, 'b', { get: function() { return this.a + 1; } });
console.log(o.b) // Runs the getter, which yields a + 1 (which is 1)
console.log(o)
为什么,当我记录o
时,为什么我:
在node.js
中看不到它
看到了,但在Chrome中它变灰了?
如果将enumerable: true
添加到defineProperty()
选项对象,您会看到它。默认情况下,使用.defineProperty()
添加的属性是不可枚举的。
一些控制台环境可能会选择显示所有属性,而另一些则不会。