什么是原型和原型链

tech2022-08-18  124

首先要理解原型和原型链的概念

原型的概念

js规定每个函数都有一个proto属性,指向另一个对象(自身的原型),函数对象除了proto之外还有prototype属性,当函数作为构造函数创建实例时,该属性就被作为实例对象的原型

原型有三个属性:prototype,proto,constructor 1.prototype 每个函数都有一个prototype属性,这个属性指向函数的原型对象。

2.proto 每个对象(除null外)都会有的属性,叫做__proto__,这个属性会指向该对象的原型。

3.constructor 每个原型都有一个constructor属性,指向该关联的构造函数。

原型链的概念

当一个对象调用自身不存在的属性和方法时,就回去自己的proto关联的前辈prototype对象上去找,如果没找到,就回去该prototype原型[proto]关联的前辈prototype去找,依此类推,直到找到或者返回undefinend这个链式查找的过程就是原型链

总结

查找的过程是一个链式的查找,每一个对象都有一个他自身原型对象的链接,这些链接组建的整个链条就是原型链,拥有相同原型的多个对象,他们的共同特征正是通过这种查找模式体现出来的,最顶层的原型对象就是object.prototype,这个对象中保存了最常用的方法如:toString,valueof,hasownproperty等,因此我们才能在任何对象中使用这些方法

最新回复(0)