javascript - 使用 Object.create(null) 创建 JS 对象是否与 {} 相同?

标签 javascript

我知道很多创建 JS 对象的方法,但我不知道 Object.create(null) 的方法。

问题:

是否完全一样:

var p = {}

对比

var p2 = Object.create(null);

?

最佳答案

它们不等价。 {}.constructor.prototype == Object.prototypeObject.create(null) 不继承任何东西,因此根本没有任何属性。

换句话说:默认情况下,javascript 对象继承自 Object,除非您显式地以 null 作为原型(prototype)创建它,例如:Object.create(null)

{} 将等同于 Object.create(Object.prototype)


在 Chrome Devtool 中,您可以看到 Object.create(null) 没有 __proto__ 属性,而 {} 有。

enter image description here

关于javascript - 使用 Object.create(null) 创建 JS 对象是否与 {} 相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15518328/

相关文章:

javascript - 使用 onClick 禁用文本字段时更改文本颜色?

javascript - 在 Phaser 3.20.1 中并行运行多个场景

javascript - JS 开发人员需要阅读 ECMAScript 规范吗?

javascript - .focus() 不关注新元素

javascript - meteor :如何在CSS选择器中使用多个类

javascript - 类型错误 : Cannot read property 'length' of undefined | Finding the shortest word in a string | Codewars Challenge

javascript - DataTables - _fnAjaxDataSrc - 无法读取未定义的属性 'length'

javascript - getjson 查询不起作用

javascript - jQuery ui 选项卡选择所需的帮助。我可以取消该操作吗?

javascript - 需要制作一个 javascript 数组来讲述一个故事