并不是所有的原型链上都有object.proto?

来源:4-2 [JavaScript]创建对象、原型链

Qub

2017-09-02 09:24

举个例子?

写回答 关注

3回答

  • 慕仔3497884
    2018-01-08 00:56:30

    正如图所显示,Object.prototype是所有对象的原型链最末端(在这里还找不到方法或属性就是真的找不到了),而这个末端指向了null。

    console.log(typeof null);// object

    null是一个对象,是终点。所以null没有原型__proto__了,也不会有任何方法了。

  • ergfsersdf
    2017-09-02 14:56:56

    刚刚我去补习了一下这个知识,null的存在是为了访问Object.prototype.__proto__的时候不发生异常,这是它存在的一个原因之一,你没法儿访问(因为是空的),同时也完善了原型链,因为“空”也是一个对象,而原型链上只有对象。

  • ergfsersdf
    2017-09-02 14:49:27

    null没有任何属性,事实上如果不刻意创建某个对象继承自NULL的情况下,Object.prototype的原型链在浏览器中是可以看到constructor指向的是function Object()的,而function Object()有__proto__属性,隐式指向function (),而function ()的__proto__属性就是Object.prototype了。

    总结,Object.prototype是所有对象的根,而继承自null的对象没有任何东西。

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281112 学习 · 1020 问题

查看课程

相似问题