什么是原型?原型链?

553 阅读1分钟

原型

概念

每一个函数都有一个prototype属性,指向另一个对象(就是原型对象),prototype的所有属性和方法,都会被构造函数的实例继承。prototype就是调用构造函数所创建的那个实例对象的原型。

  • 作用 数据共享
原型又分为 显示原型隐式原型

显示原型

  • 构造函数中的prototype属性就是显示原型
  • 显示原型 程序员使用的 一般用来添加属性和方法 image.png 隐式原型
  • 当函数作为构造函数使用,它所创建的对象中都会有一个隐含的属性指向该原型对象。这个隐含的属性可以通过对象.__proto__(隐式原型)来访问 image.png
构造函数 对象实例 原型之间的三角关系?

构造函数 ===>prototype===>原型对象
构造函数new出来的实例对象===>__proto__===>原型对象。
原型对象===>constructor===>构造函数 image.png

原型链

概念

当我们去访问对象的一个属性或调用对象的一个方法时,它会先自身中寻找,如果在自身中找到了,则直接使用。如果没有找到,则去原型对象中寻找,如果找到了则使用,如果没有找到,则去原型的原型中寻找,依此类推。直到找到Object的原型为止,Object的原型的原型为null,如果依然没有找到则返回undefined

image.png

作用

实现对象继承(原型链继承),到达数据复用共享目的