为什么我们在记录"o"时看不到"o"的"b"属性?



查看此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()添加的属性是不可枚举的。

一些控制台环境可能会选择显示所有属性,而另一些则不会。

最新更新