继承:
将方法的定义放在构造函数中,每创建一个新对象,都会重复创建该方法一模一样的副本,浪费内存。
解决:
如果多个子对象都要使用一个相同的方法时,应该把这个方法放在一种原型对象中,构造函数中不再包含方法定义。
原型对象:
一个类型中,专门为所有子对象集中保存共有方法的对象。同一类型下多个子对象需要用一个共用的方法时,都应该将这个方法放在原型对象中。
1.原型对象不同于手工创建,定义了一个构造函数,js会自动赠送一个空的原型对象。
2.不用手工设置继承,
new的第二步:让新创建的子对象自动继承构造函数的原型对象。
3.凡是从_ proto 指出的关系都不是一般的引用关系,都是继承关系。
继承:如果子对象没有的成员,子对象也想使用,则js程序会自动延 proto _去父对象查找,如父对象中有需要的成员,则子对象无需重复创建,就可直接使用。
4.通过强行赋值的方式,向原型对象中添加所有子对象都希望共用的共有方法。
类型名.prototype.共有方法=function(){...}
function Student(sname,sage){
this.sname=sname;
this.sage=sage;
}
Student.prototype.intr=function(){
console.log(`我是${this.lilei},今年${this.sage}`);
}
var lilei=new Student("lilei",11);
var hmm=new Student("hmm",12);
lilei.intr();
hmm.intr();
console.log(lilei);
console.log(hmm);