原型链
原型链
事实上,js 里完全依靠”原型链”(prototype chain)模式来实现继承。
上面说完原型对象。下面要扒一扒 proto、prototype、constructor。
- proto:事实上就是原型链指针!!
- prototype:上面说到这个是指向原型对象的
- constructor:每一个原型对象都包含一个指向构造函数的指针,就是 constructor
继承实现方式
为了实现继承,proto 会指向上一层的原型对象,而上一层的结构依然类似,那么就利用 proto 一直指向 Object 的原型对象上!Object.prototype.__proto__ = null;表示到达最顶端。如此形成了原型链继承。
总结
- Object 是作为众多 new 出来的实例的基类 function Object(){ [ native code ] }
- Function 是作为众多 function 出来的函数的基类 function Function(){ [ native code ] }
- 构造函数的 proto(包括 Function.prototype 和 Object.prototype)都指向 Function.prototype
- 原型对象的 proto 都指向 Object.prototype
- Object.prototype.proto 指向 null