谈谈你对原型链的理解

谈谈你对原型链的理解

  • js里所有的对象都有proto属性(对象,函数),指向构造该对象的构造函数的原型。
  • 只有函数function才具有prototype属性。这个属性是一个指针,指向一个对象,这个对象的用途就是包含所有实例共享的属性和方法(我们把这个对象叫做原型对象)。原型对象也有一个属性,叫做constructor,这个属性包含了一个指针,指回原构造函数。

三句话总结原型和原型链

第一句话:prototype是函数的原型对象,即prototype是一个对象,它会被对应的__proto__引用。

第二句话:要知道自己的__proto__引用了哪个prototype,只需要看看是哪个构造函数构造了你,那你的__proto__就是那个构造函数的prototype

第三句话:所有的构造函数的原型链最后都会引用Object构造函数的原型,即可以理解Object构造函数的原型是所有原型链的最底层,即Object.prototype.__proto===null

你可能感兴趣的:(前端面试之道,JavaScript)