JavaScript中的原型对象与原型链总结

167 阅读1分钟

JavaScript原型链

从一个对象身上获取属性,如若找不到,会依次寻找其原型上的属性,原型上没有,会继续寻找原型的原型,依次到原型链尽头为止。

JavaScript原型之间的关系

  • 每个对象都是由函数构造出来的,所以每个对象的隐式原型指向构造它们的函数的原型对象
  • 每个函数本身自己又是一个对象,其是由Function这个构造函数构造出来的,所以所有构造函数的隐式原型指向Function这个构造函数的原型
  • Function自己也是一个函数,其本身也是一个对象,所以其隐式原型指向自己的原型对象
  • Function的原型对象也是一个对象,其由Object构造函数new出来,所以其隐式原型指向Object的原型对象
  • Objct的原型对象的隐式原型指向NULL,即这里便是原型链终点
  • 其他构造函数的原型对象也也都是由Object构造出来的,所以他们隐式原型都指向Object的原型对象
  • 最为特殊的两个对象便是:Function构造函数,其原型portotype与隐式原型__proto__都指向Function的原型对象,Object的原型对象,其隐式原型指向NULL,原型链的终点

原型之间的关系如下图:

image.png