原型的出现就是为了解决构造函数的缺点, 因为构造函数只能给对象添加属性,不能给对象添加方法。
1.原型的概念
每一个构造函数(普通函数也有原型)都有一个原型对象,也叫prototype(原型属性),它保存了构造函数创建的一类实例的共有的方法。
2.原型链的概念
当在实例化的对象中访问一个属性时,首先会在该对象内部(自身属性)寻找,如找不到,则会向其__proto__指向的原型中寻找,如仍找不到,则继续向原型中__proto__指向的上级原型中寻找,直至找到或Object.prototype.__proto__为止(值为null),这种链状过程即为原型链。