天天看点

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作用域。并无其他更深的技巧。

继续阅读