call和apply方法主要用于改变函数内部this 的指向
调用一个方法,方法内使用了this ,则这个this就代表的是 window,因为函数默认都是在window下边的子函数, 只不过省略window.fun
function f1(){
alert(1);
console.log(this);
}
function f2(){
alert(2);
console.log(this);
}
f1(); // alert(1) console.log(window)
f1.call(f2); // alert(1) console.log(f2(){alert(2);console.log(this);})
f2.call(f1); // alert(1) console.log(f1(){alert(1);console.log(this);})
apply 和 call 的使用方法一样,只不过在传递参数的时候,call 可以一直无限往下用 , 逗号连接, f1.call(f2,1,2);
而apply 则只有两个参数,第二个参数是一个数组 f2.apply(f1,[1,2]);