Node.js中的Object.defineProperty

时间:2018-06-20 14:54:08

标签: 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的终端中,它失败并输出空白对象{}

这里可能是什么问题?

1 个答案:

答案 0 :(得分:3)

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

您可以更改该位并尝试

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