原型
概念
每一个函数都有一个prototype属性,指向另一个对象(就是原型对象),prototype的所有属性和方法,都会被构造函数的实例继承。prototype就是调用构造函数所创建的那个实例对象的原型。
- 作用 数据共享
原型又分为 显示原型 和 隐式原型
显示原型
- 构造函数中的
prototype属性就是显示原型 - 显示原型 程序员使用的 一般用来添加属性和方法
隐式原型
- 当函数作为构造函数使用,它所创建的对象中都会有一个隐含的属性指向该原型对象。这个隐含的属性可以通过
对象.__proto__(隐式原型)来访问
构造函数 对象实例 原型之间的三角关系?
构造函数 ===>prototype===>原型对象
构造函数new出来的实例对象===>__proto__===>原型对象。
原型对象===>constructor===>构造函数
原型链
概念
当我们去访问对象的一个属性或调用对象的一个方法时,它会先自身中寻找,如果在自身中找到了,则直接使用。如果没有找到,则去原型对象中寻找,如果找到了则使用,如果没有找到,则去原型的原型中寻找,依此类推。直到找到Object的原型为止,Object的原型的原型为null,如果依然没有找到则返回undefined
作用
实现对象继承(原型链继承),到达数据复用共享目的