在 JS 中,原型和原型链是一个很重要的概念,可以说原型本质就是一个对象。它分为两种: 对象的原型函数的原型

对象的原型:

  • 任何对象都有自己默认的原型(隐式原型),
  • 它的作用就是在当前对象查找某一个属性时, 如果找不到, 会在原型上面查找
  • 获取隐式原型的方法:
    • __proto__(这个不是规范,是浏览器加的,因为早期没有获取原型对象的方法)
    • Object.getPrototypeOf(obj)

函数的原型:

  • 首先,因为函数也是一个对象,所以他会有一个 __proto__ 隐示原型
  • 其次任何一个函数(非箭头函数)还会有自己的 prototype 属性(显式原型
  • 获取显示原型的方法:
    • prototype
  • 作用:
    • 当通过 new 操作符调用函数时, 创建一个新的对象
    • 这个新的对象的 隐式原型 会指向这个函数的 显式原型
    • obj.__proto__ = F.prototype

原型链:

上面讲过,隐式原型的作用是 当前对象查找某一个属性时, 如果找不到, 会在原型上面查找,而原型也是一个对象,所以在原型对象上找不到的话,还会去原型对象的原型对象上找,这样一层一层、以此类推就形成了原型链(prototype chain

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:叶继伟

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!