javascript - 为什么我们在记录 '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()
是不可枚举的。
一些控制台环境可能会选择显示所有属性,而另一些则不会。
推荐阅读
- reactjs - React hook 没有反映在函数中
- node.js - Node JS 应用程序在两个客户端访问后崩溃。奇怪的行为
- reactjs - 无法安装@apollo/client
- r - 结合插入符号时xgboost R中的预测错误
- reporting-services - 如何从 ssrs 的 12 行中获取先前的值
- php - 我如何通过 php 发送 json 数据?
- php - 根据在 WooCommerce 中购买的数量为每个订单项目做一些事情
- c# - 未找到 Update.exe,不是 Squirrel 安装的应用程序,托管在 ISS 上
- c# - 如何在c#中对字典的键进行排序
- reactjs - setState 在 useLayoutEffect 中