包括JavaScript在内的基于原型的语言,允许一个对象通过原型链引用另一个对象来构建对象中的复杂性。JavaScript 使用原型链这种机制来实现动态代理,当试图去引用某一个属性时,它会遍历整个原型链,直到最后的节点

理解原型

在JavaScript中,原型可以通过三种方式访问:

  • Foo.prototype 使用new运算符在对象的初始化中定义原型,例如:new Foo()
  • Object.getPrototypeOf(foo) 返回指定对象的原型引用
  • Foo.__proto__是一个属性,它指向对象构造方法自己的原型对象。