希望通过比较通俗易懂的讲解和简短的文字,让大家能快速理解什么是原型链,如果有不对的地方也请各位大佬快速纠正,一起共勉,使我们初学者快速进阶!
话不多说,我们切入正题,按着我的步骤一步一步往下看,或许你会有一定的了解。
1.在javaScript中,我们知道对于一个对象我们用Object表示,而函数用Function表示。在我们学习一些资料的时候,有时会出现__proto__和prototype两个有点不易理解的属性,我在这里告诉大家要区分[对于__proto__是对象或者实例(new出来的)特有的属性,而prototype是Function特有的]。
2.那什么是原型链呢?就是比如一个对象有__proto__的属性,他会指向对象的原型,对象的原型又是对象的话,那他又有__proto__,然后他又会向上去找对应的原型,直到找到Object对象的原型的时候,就结束了,整个一条感觉链子一样的东西,我们称他为原型链。
3.那可能你要问了prototype是干嘛的?他是实例的构造函数特有的也指向对象的原型,然后也是通过一步一步往上寻找,直到object的原型为止。
4.这东西有什么用呢?
我们在用继承的时候就会用到,还有一些设计模式中也会提到,具体大家可以搜下度娘,这里就不一一陈述了。
配个图用于理解
最后感谢大家的阅读,也希望大家能一起探索前端的未知。