Object.defineProperty 在 Node.js

Object.defineProperty in Node.js

我是 运行 浏览器控制台中的以下代码以及终端中的 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);