如何理解JavaScript原型链
实例对象与原型对象的关系
构造函数、原型对象和实例对象之间的关系
原型链结构图
函数在原型链中的结构
原型链的理解和总结
1) JavaScript 中的每个对象都有一个prototype 属性,称为原型,而原型的值也是一个对象,因此它也有自己的原型,这样就串联起了一条原型链。原型链的链头是object,它的prototype比较特殊,值为null。
2)原型链的作用是对象继承。函数A的原型属性( prototype property) 是一个对象,当把这个函数作为构造函数来创建实例时,该函数的原型属性将作为原型赋值给所有对象实例,比如新建一个数组,数组的方法便从数组的原型上继承而来。
3)当访问对象的一个属性时,首先查找对象本身。若找到,则返回;若未找到,则继续查找其原型对象的属性( 如果还找不到,实际上还会沿着原型链向上查找,直到根)。只要没有被覆盖,对象原型的属性就能在所有的实例中找到,若整个原型链都未找到,则返回undefined。