call和apply
他们的效果都是一样的,改变this的指向,区别就是传参列表不同。
call
function Classb(name,dd,age){
this.name = name;
this.dd = dd;
this.age = age;
}
function Classa(name,dd,age,male,ban){
this.male = male;
this.ban = ban;
Classb.call(this,name,dd,age);
}
var classa = new Classa('夕灿','dd',19,'男','一班')
console.log(classa)
//运行call将this的指向Classb的这个构造函数里面,然后调用他里面的一些方法。
apply
function Classb(name,dd,age){
this.name = name;
this.dd = dd;
this.age = age;
}
function Classa(name,dd,age,male,ban){
this.male = male;
this.ban = ban;
Classb.apply(this,[name,dd,age]);
}
var classa = new Classa('夕灿','dd',19,'男','一班')
console.log(classa)
//区别就是将传参列表的形式改为argumets的方式。