1、在js里,继承机制是原型继承。继承的起点是 对象的原型(Object prototype)。
2、一切皆为对象,只要是对象,就会有 _ proto _ 属性,该属性存储了指向其构造的指针。
- Object prototype也是对象,其 _ proto _ 指向null。
3、对象分为两种:函数对象和普通对象,只有函数对象拥有『原型』对象(prototype)。
- prototype的本质是普通对象。
- Function prototype比较特殊,是没有prototype的函数对象。
- new操作得到的对象是普通对象。
4、当调取一个对象的属性时,会先在本身查找,若无,就根据 _ proto _ 找到构造原型,若无,继续往上
找。最后会到达顶层Object prototype,它的 _ proto _ 指向null,均无结果则返回undefined,结束。
5、由 _ proto _ 串起的路径就是『原型链』。