在javascript中是否有没有原型的对象?

时间:2016-06-03 03:51:02

标签: javascript-events

我被告知所有对象都需要有一个原型,但似乎可以使用null

创建一个
var obj= Object.create(null);

上面的对象是无原型的,还是有一些无法访问的原生对象作为它的原型,null是不是意味着它没有原型而只是它没有作者创建的原型?

2 个答案:

答案 0 :(得分:1)

它没有原型(或者原型是null)。无法使用Object.prototype(null)创建的对象访问任何属性。

观察Object.getPrototypeOf(Object.create(null))的结果为null

答案 1 :(得分:1)

所有对象都有一个内部[[Prototype]]插槽,可以是null或其他对象。

[[Prototype]]为null的对象的一些示例确实是Object.prototypeObject.create(null)

  

9.1 Ordinary Object Internal Methods and Internal Slots

     

所有普通对象都有一个名为[[Prototype]]的internal slot。   此internal slot的值为 null 或对象   并用于实现继承。数据属性   [[Prototype]]对象是继承的(作为属性可见   child object)用于获取访问权限,但不用于set访问权限。   访问者属性是为get访问和set访问继承的。