js原型和原型链的理解
什么是原型、原型链,有什么作⽤?
什么是原型:
原型:每⼀个对象都与另⼀个对象相关联,那个关联的对象就称为原型。
例如:函数Person有⼀个属性prototype,指向⼀个对象,对于普通函数来说没多意义,对于构造函数就有作⽤了,当使⽤new操作符时,会把Person.prototype(原型对象)赋值给实例的__proto__(原型实例)属性。
JS有⼀个原型查机制,把原来定义在实例上的⽅法,放到原型对象上去,通过构造函数的new操作,会把原型对象赋值给实例的
__proto__属性,那么当使⽤返回的实例去调⽤某⼀个⽅法的时候,如果实例本⾝上没有,就去⾃动去实例的__proto__上去查,这样达到⽅法的复⽤,减少内存开销。
原型链:
原型链:每⼀个对象,都有⼀个原型对象与之关联,这个原型对象它也是⼀个普通对象,这个普通对象也有⾃⼰的原型对象,这样层层递进,就形成了⼀个链条,这个链条就是原型链。通过原型链可以实现JS的继承,把⽗类的原型对象赋值给⼦类的原型,这样⼦类实例就可以访问⽗类原型上的⽅法了。
structor == Person
Person.prototype.__proto__.constructor  == Object
Person.prototype.__proto__ == Object.prototype
Object.prototype.__proto__ == null

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。