call
改变this指向,利用别人的方法来实现自己的功能。
比如
function B(args1,args2,args3){
this.args1=args1;
this.args2=args2;
this.args3=args3;
}
当执行语句
B.call(A,args1,args2,args3);
B中的this就会全部替换为A对象,也就是,A利用了B的方法来实现了自己的功能(A位置必须是一个对象)。
apply
apply与call的作用基本相同,不同的是,call需要把实参按照形参个数传进去,但是apply需要传一个数组(arguments)。
用apply实现上述功能
B.call(A,[args1,args2,args3]);