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