【前端基础进阶】JS原型、原型链、对象详解(2)
其中add是Function对象的实例。而Function的原型对象同时又是Object原型的实例。这样就构成了一条原型链。原型链的访问,其实跟作用域链有很大的相似之处,他们都是一次单向的查找过程。因此实例对象能够通过原型链,访问到处于原型链上对象的所有属性与方法。这也是foo最终能够访问到处于Object原型对象上的toString方法的原因。 基于原型链的特性,我们可以很轻松的实现继承。 具体基本知识了解后,我们分析下图 第一 先从实例add()分析 实例add() 为 Function的实例 所以 add()的__proto__指向其构造函数的原型即 Function.prototype
特别注意 构造函数Funciton的__proto__指向自身的Function.prototype
所以构造函数Function的__proto__和prototype都指向Function.prototype 第二 因为Function和Object都是js自带函数 且 Object 也是由 new Function创建而来
所以 Object的__proto__指向Function的原型对象即 Function.prototype
因此 Object 的 prototype 和 Function.prototype的 __proto__都指向 Object.prototype 第三 Object.prototype被称为原型链的E端,因为它的__proto__为null 【责任编辑:庞桂玉 TEL:(010)68476606】点赞 0 (编辑:ASP站长网) |