page contents

什么是原型、原型链,有什么作用?

轩辕小不懂 发布于 2022-08-12 14:01
阅读 796
收藏 0
分类:WEB前端开发
4067
Nen
Nen
- 程序员

原型:每一个对象都与另一个对象相关联,那个关联的对象就称为原型。

例如:函数Person有一个属性prototype,指向一个对象,对于普通函数来说没多意义,对于构造函数就有作用了,当使用new操作符时,会把Person.prototype(原型对象)赋值给实例的__proto__(原型实例)属性。

attachments-2022-08-PI6IO0y062f5ed84c7a32.png

JS有一个原型查找机制,把原来定义在实例上的方法,放到原型对象上去,通过构造函数的new操作,会把原型对象赋值给实例的__proto__属性,那么当使用返回的实例去调用某一个方法的时候,如果实例本身上没有,就去自动去实例的__proto__上去查找,这样达到方法的复用,减少内存开销。

原型链:每一个对象,都有一个原型对象与之关联,这个原型对象它也是一个普通对象,这个普通对象也有自己的原型对象,这样层层递进,就形成了一个链条,这个链条就是原型链。通过原型链可以实现JS的继承,把父类的原型对象赋值给子类的原型,这样子类实例就可以访问父类原型上的方法了。

请先 登录 后评论