js原型及原型链

推荐学习博文:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

https://blog.csdn.net/qq_42019025/article/details/80708446

https://blog.csdn.net/u010365819/article/details/81326349

js原型及原型链_第1张图片

  1.  每个函数function都有一个prototype,即显式原型(属性)
  2. 每个实例对象都有一个__proto__,可称为隐式原型(属性)
  3. 对象的隐式原型的值为其对应的构造函数的显式原型的值
  4. 总结:1)函数的prototype属性:定义函数时自动添加的,默认是一个空的Object对象;2)对象的__proto__属性:创建对象时自动添加的,默认值为构造函数的prototype属性值;3)程序员可以直接操作显式原型,但不能直接操作隐式原型(ES6之前)

原型链(隐式原型链): 

访问一个对象的属性时

  1. 在自身属性查找,找到返回
  2. 如果没找到,沿着__proto__这条链向上查找,找到则返回
  3. 如果最终没找到,返回undefined

作用:查找对象的属性(方法)

js原型及原型链_第2张图片

你可能感兴趣的:(JS高级教程)