首页 > 解决方案 > 为什么我们在记录 '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 中是灰色的?

标签: javascript

解决方案


如果你添加enumerable: truedefineProperty()选项对象,你会看到它。默认情况下,添加的属性.defineProperty()不可枚举的。

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


推荐阅读