1.定义:原型function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。
2.利用原型特点和概念,可以提取公有属性。
3.对象如何查看原型-->隐式属性__proto__
4.对象如何查看对象的构造函数-->constructor
function Preson(){
//构造函数,大驼峰式
}
var preson = new Preson();
//new的时候隐式var this ;return this;
1-1.原型
Preson.prototype --->就是原型
Preson.prototype = {} 是祖先
如果给其添加属性Preson. prototype.name = 'hehe';则preson就可以继承Preson的name属性。preson本身没有name属性,但是他可以继承Preson的name属性。
var preson1 = new Preson();也可以继承Preson的属性和方法。
var preson2 = new Preson();
但是如果对象本身有的属性,就不会上原型上去找。
原型的增删改查:
Preson.prototype.age = 18;
delete Preson.prototype.age;
Preson.prototype.age = 20;
Preson.prototype.age
就是说只能通过对构造函数原型本身的操作来实现原型的增删改查,而不能通过构造函数产生的对象来对原型做增删改查。
1-2.constructor
preson.constructor就是指向产生这个对象的构造函数本身。
当打印Preson.prototype时可以看见控制台输出浅粉色的constructor属性,浅粉色表示系统自带的属性。表示原型内部自带这个constructor属性,这个属性就是为了让构造函数产生的对象在想要找到它的原型时,用constructor找到它的构造函数。并且可以在原型上面对constructor属性做修改,如:Preson.prototype.constructor = Car