javascript - Node.js 中的 Object.defineProperty

标签 javascript ecmascript-6 ecmascript-5

我在浏览器控制台中运行以下代码,并在终端中使用 node.js v9.11.1:

let name = {};
Object.defineProperty(name, 'last', {value: 'Doe'});
console.log(name);

浏览器控制台正常工作并输出{ last: 'Doe' } 。但是在带有 node.js 的终端中,它失败并输出一个空白对象,{}

这可能是什么问题?

最佳答案

属性描述符的属性之一是enumerable,其默认值为false。如果一个属性是不可枚举的,Node.js 选择不显示该属性,就是这样。

你可以改变那个位然后试试这个

let name = {};
Object.defineProperty(name, 'last', {
  value: 'Doe',
  enumerable: true
});
console.log(name);

关于javascript - Node.js 中的 Object.defineProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50951150/

相关文章:

javascript - 如何知道类的实例是否来自单例?

javascript - 从 onclick 函数为对象赋值

javascript - 排序数组和 indexOf() 运行时

javascript - 显示与 JSON 数据的 'Open Hours' 日期/时间对齐的 div

javascript - 获取给定经纬度范围内的邮政编码

javascript - 单击按钮时不会调用 Phonegap android native 功能

javascript - 为什么 lodash _.filter 方法适用于选择选项,但不适用于 vanilla js 的过滤方法?

javascript - 单击选择,添加选项,然后打开选择下拉列表

javascript - 我如何在 React 类 Es6 的另一个方法中调用一个方法

javascript - 无法从回调中设置类成员变量