Node.js中的Object.defineProperty

Joh*_*uma 1 javascript ecmascript-5 ecmascript-6

我正在浏览器控制台以及node.js v9.11.1终端中运行以下代码:

let name = {};
Object.defineProperty(name, 'last', {value: 'Doe'});
console.log(name);
Run Code Online (Sandbox Code Playgroud)

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

这里可能是什么问题?

the*_*eye 5

属性描述符的属性之一是enumerable,具有默认值false。如果属性不可枚举,则Node.js选择不显示该属性,仅显示该属性。

您可以更改该位并尝试此操作

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