什么是原型链?
JavaScript是⾯向对象的,每个实例对象都有⼀个__proto__属性,该属性指向它的原型对象,这个实例对象的构造函数有⼀个原型属性
prototype,与实例的proto属性指向同⼀个对象。当⼀个对象在查找⼀个属性的时候,⾃⾝没有就会根据__proto__向它的原型进⾏查找,如果
都没有,则向它的原型的原型继续查找,直到查到_为null,这样也就形成了原型链。
原型对象和实例之间有什么作⽤呢?
通过⼀个构造函数创建出来的多个实例,如果都要添加⼀个⽅法,给每个实例去添加并不是⼀个明智的选择。这时就该⽤上原型了。
在实例的原型上添加⼀个⽅法,这个原型的所有实例便都有了这个⽅法。
varM=function(name){=name;}
varo3=newM('o3')
实例就是对象,在本例中o3就是实例,M就是构造函数。
实例通过new⼀个构造函数⽣成的。
从上图中可以知道,实例的proto指向的是原型对象。
实例的构造函数的prototype也是指向的原型对象。
原型对象的construor指向的是构造函数。
补充:
只有函数有prototype,对象是没有的。
但是函数也是有proto的,因为函数也是对象。函数的proto指向的是ype。
本文发布于:2022-11-22 16:38:51,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/320.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |