javascript - Object.prototype 在 Node 中返回空对象

标签 javascript node.js object

当我在浏览器控制台中执行 Object.prototype 时,我得到了 Object.prototype 中可用的所有属性和方法。这是预期的,但是当我在 NodeJS 终端中执行完全相同的事情时,我得到一个空对象 {}。谁能解释一下为什么会这样?我附上了两者的截图。

Browser

Terminal

最佳答案

这是因为 node 中的 console.log() 使用了 util.inspect(),它在对象上使用了 Object.keys(),它只返回可枚举的属性。而 Object.prototype 包含不可枚举的属性,这就是它返回空 Node 的原因。

在下面的代码片段中可以观察到类似的行为,当我们 console.log(Object.prototype) 它记录一个空的 {};

console.log(Object.prototype);

但是当我们在 Object.prototype 中明确定义一个可枚举属性时,它会记录一个包含该属性的对象:

Object.defineProperty(Object.prototype, 'property1', {
  value: 42,
  enumerable : true
});
console.log(Object.prototype)

对于 Reference

关于javascript - Object.prototype 在 Node 中返回空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233812/

相关文章:

c# - 带 Moq 的 MV3 测试项目,使用特定表达式时如何返回对象?

object - 如何在 go 中声明自定义类型的变量(如 time.Date)?

javascript - 从对象数组中提取键和值

sql-server - Amazon SQS 是处理分析日志数据到数据库的好工具吗?

node.js - 保存后环回更新模型

javascript - 我无法使用 nodejs 和 mongodb 中的 get 方法从 html 控件中获取数据

Javascript:错误,对象不是函数

javascript - 适用于 IE 的图表库?

javascript - 如何转换 x,y 坐标以使用绝对显示?

javascript - 如何在 JavaScript 中使用正则表达式将一组字符替换为空字符串?