fn.call(obj,arg1,arg2);
這是call()方法的使用形式,apply()是差不多的。作用是用obj對象來替換fn中的this
舉個栗子:
function A(){
this.color="blue";
}
function B(){
this.color="yellow";
}
var a=new A();
B.call(a); //用a對象來替換B()函數(shù)中的this;函數(shù)在調(diào)用call()或apply()的時候會執(zhí)行函數(shù)
alert(a.color); //這里將輸出yellow
// 因此,上面的代碼就可以改寫成:
function A(){
this.color="blue";
}
function B(){
a.color="yellow"; //上面的B.call(a)的結(jié)果就變成了這樣
}
var a=new A();
B(); //調(diào)用了一次B(),從而修改了a.color的值
alert(a.color); //所以輸出yellow