一、原型是什么
每个函数都有一个prototype(原型)属性,这个属性都有一个指针,指向一个对象,这个对象包含由特定类型所有实例共享的属性和方法,我这里就给他安置了一个辈分——对象的父亲。瞬间逼格就高了一级,哈哈哈哈...使用原型的好处是什么呢? 可以让所有对象实例共享原型包含的方法和属性。利用原型是当前构造函数创建的对象的父类,这个特点我们可以提取对象的公共属性和方法放在原型中,从程序的视角中具有封装性
1.1 原型的构成:原型的属性和方法+constructor
function Car(color) {
this.color = color
}
Car.prototype.name = "BMW";
Car.prototype.setColor = function (color) {
this.color = color
}
var car = new Car()
image.png
从上面可以看到:car是构造函数创建的对象;
Car是构造函数;
Car.prototype是car对象的父亲,这也就不难理解对象身上没有name和setColor的属性和方法,car对象却能访问的缘故了。
二、如何使用原型
构造函数创建的实例可以访问构造函数的属性和方法,也可以访问原型的属性和方法。对于原型只能访问自己的属性和方法。考虑这一特性,如果对象公有的属性和方法,我们可以添加到原型上面,对象需要的时候直接访问原型的属性和方法就可以。