原型链

原型链

事实上,js 里完全依靠”原型链”(prototype chain)模式来实现继承。
上面说完原型对象。下面要扒一扒 proto、prototype、constructor。

  • proto:事实上就是原型链指针!!
  • prototype:上面说到这个是指向原型对象的
  • constructor:每一个原型对象都包含一个指向构造函数的指针,就是 constructor

继承实现方式

为了实现继承,proto 会指向上一层的原型对象,而上一层的结构依然类似,那么就利用 proto 一直指向 Object 的原型对象上!Object.prototype.__proto__ = null;表示到达最顶端。如此形成了原型链继承。

总结

  1. Object 是作为众多 new 出来的实例的基类 function Object(){ [ native code ] }
  2. Function 是作为众多 function 出来的函数的基类 function Function(){ [ native code ] }
  3. 构造函数的 proto(包括 Function.prototype 和 Object.prototype)都指向 Function.prototype
  4. 原型对象的 proto 都指向 Object.prototype
  5. Object.prototype.proto 指向 null