原型链是怎么链接的呢?
简单说下自己的理解:
每个对象都有一个原型对象. 原型对象中存放这这个对象的属性和方法.
每个对象都有一个指针_proto_. 指向自己的原型对象.
每个对象都有一个prototype属性. 这个属性是一个对象, 存放了一些方法和属性,让原型链下游的对象来继承.
假设有a b c 三个对象,c继承b, b 继承 a , 这样就形成了一个如图的原型链.
(画得不好,但要表达的意思到了,凑合看吧)
当然,a.prototype,b.prototype ,c.prototype等等这些, 也是一个对象, 它们也有自己的原型对象. 也是用_proto_指向自己的原型对象.
说到原型这块, 就得知道new, new发生了什么?
第一步 : 初始化一个对象 {}
第二步 : 将这个对象的 原型对象 指向 构造器的 prototype 属性
第三步 : 构造器函数.call( {}, 参数 ) 改变构造器函数中this的指针, 指向{} 这个对象, 并执行构造
器函数
第四步 : 返回这个对象 {} .
时间: 2024-10-22 12:23:07