原型和原型链

  对象实现方法的几种方式:

  1、当前构造函数构造出的实例可用

原型和原型链

   2、当前实例可用

原型和原型链

   3、当前构造函数构造出的实例可用

原型和原型链

  4、所有实例可用

原型和原型链

  5、所有实例可用

原型和原型链

原型和原型链

 记:

  1、只有函数才有 prototype 属性,该属性是一个对象

  2、所有实例的 __proto__ 都指向构造函数的 prototype 属性

原型和原型链

  3、Object.prototype 是原型链的顶端:Object.prototype.__proto__   // null

原型和原型链

  4、Object 本身是构造函数,继承自 Function.prototype

原型和原型链

   5、Function 也是对象,也继承自 Function.prototype

原型和原型链

   6、一个先有鸡还是蛋的问题

原型和原型链

   哈哈哈,这问题好玩不!

附张图:

原型和原型链

   直观图

原型和原型链

source: https://github.com/creeperyang/blog/issues/9