我正在浏览器控制台中运行以下代码,并且还在终端中运行node.js v9.11.1
:
let name = {};
Object.defineProperty(name, 'last', {value: 'Doe'});
console.log(name);
浏览器控制台正常工作,并输出{ last: 'Doe' }
。但是在带有node.js
的终端中,它失败并输出空白对象{}
。
这里可能是什么问题?
答案 0 :(得分:3)
属性描述符的属性之一是enumerable
,其默认值为false
。如果某个属性不可枚举,则Node.js选择不显示该属性,就是这样。
您可以更改该位并尝试
let name = {};
Object.defineProperty(name, 'last', {
value: 'Doe',
enumerable: true
});
console.log(name);