天天看點

JavaScript 手記:一段代碼告訴你call 和 apply method 的作用

field='window';
var obj={field:'obj'};
function add(a,b)  
{  
    console.log(this);
}  
function sub(a,b)  
{  
        return a-b;
}
//以下不管哪一種方法都是去調用add的函數體 
add.call(sub,3,1);//這個時候add中的this是sub函數,也就是說,你可以在函數體内直接調用this(a,b);
add.call(obj,,);//這個時候add中的this是obj對象,也就是說你可以使用this.field;是等于'obj'的
add();這個時候this是Window對象,外部存在全局變量field,也就是說你可以使用this.field;是等于'window'的
           

綜上,call和apply的作用無非是改變函數中的this作用域。并無其他更深的技巧。

繼續閱讀