JavaScript原型链

84 阅读1分钟

参考文章

概念

  • 原型:js语言机制,对象的__proto__所指向的对象
  • 原型对象:prototype- 构造函数constructor 所指的对象
  • 原型链:对象的__proto__逐级向上的链式路径

对象

js中除了基础数据 string number boolean undefined symobol null 之外,其他都是 Object 对象

proto

对象有__proto__属性,可以使用 Object.getPrototypeOf()来获取__proto__指向的对象,如下图所示,所有的__proto__都指向了原型对象prototype,最终这些原型对象的__proto__都指向了 Object.prototype原型对象, 而Object.prototype的原型对象是null

image.png

constructor

只有原型对象有 constructor 构造函数,只要被 new 关键字调用的函数就可以成为构造函数

函数

只有函数才有 prototype

总结

  • __proto__constructor 对象拥有
  • prototype函数独有
  • js函数是对象的一种,所以函数也有 __proto__constructor