课程
/前端开发
/JavaScript
/JavaScript深入浅出
举个例子?
2017-09-02
源自:JavaScript深入浅出 4-2
正在回答
正如图所显示,Object.prototype是所有对象的原型链最末端(在这里还找不到方法或属性就是真的找不到了),而这个末端指向了null。
console.log(typeof null);// object
null是一个对象,是终点。所以null没有原型__proto__了,也不会有任何方法了。
刚刚我去补习了一下这个知识,null的存在是为了访问Object.prototype.__proto__的时候不发生异常,这是它存在的一个原因之一,你没法儿访问(因为是空的),同时也完善了原型链,因为“空”也是一个对象,而原型链上只有对象。
null没有任何属性,事实上如果不刻意创建某个对象继承自NULL的情况下,Object.prototype的原型链在浏览器中是可以看到constructor指向的是function Object()的,而function Object()有__proto__属性,隐式指向function (),而function ()的__proto__属性就是Object.prototype了。
总结,Object.prototype是所有对象的根,而继承自null的对象没有任何东西。
举报
由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握
1 回答关于所有对象原型
2 回答原型链还是搞不懂
2 回答原型链继承
2 回答对象原型链
3 回答原型链问题