JS - 原型链

每个对象都有一个指针指向它的原型(prototype),可以通过Object.getPrototypeOf(obj)方法可以获取obj对象的原型,又因原型也是对象,同理,它也有一个指针指向它自己的原型,那么如此类推就构成了原型链。
 
举个例子:
 
有如下场景
Man extends Person extends Object
 
var a = new Man();
 
a的原型就是Man.prototype
 
Man.prototype也是一个对象,那么它也有一个指针指向它自己的原型,那就是Person.prototype
 
同理,Person.prototype的原型就是Object.prototype
 
Object.prototype也是对象,同理,只不过它的原型为null,那么也就到了原型链的末端
 
a的原型链路如下图

 

 

 
 
记住一点:对象的原型就是它的构造函数的原型,照样拿上图的a对象来举例的话,也就是:a.__proto__ === Man.prototype

 

posted @ 2017-07-12 15:25  AndreMao  阅读(177)  评论(0编辑  收藏  举报