首页 > 代码库 > 原型链是什么样的?

原型链是什么样的?

 

 

 

原型链是怎么链接的呢?

简单说下自己的理解:

每个对象都有一个原型对象.   原型对象中存放这这个对象的属性和方法.

每个对象都有一个指针_proto_.  指向自己的原型对象.

每个对象都有一个prototype属性. 这个属性是一个对象, 存放了一些方法和属性,让原型链下游的对象来继承.

 

假设有a b c 三个对象,c继承b, b 继承 a , 这样就形成了一个如图的原型链.

(画得不好,但要表达的意思到了,凑合看吧)

 

技术分享

当然,a.prototype,b.prototype ,c.prototype等等这些,  也是一个对象, 它们也有自己的原型对象.   也是用_proto_指向自己的原型对象.

 

说到原型这块, 就得知道new,  new发生了什么?

第一步 :  初始化一个对象  {} 
第二步 : 将这个对象的 原型对象 指向  构造器的 prototype 属性
第三步 : 构造器函数.call( {}, 参数 )  改变构造器函数中this的指针, 指向{} 这个对象, 并执行构造
                器函数
第四步 : 返回这个对象  {} .

 

原型链是什么样的?