在js中,函数的apply和call方法是用来矫正函数中this的指向的。
在以下代码中:
function f(a,b){ console.log(this); return a+b; }
f();
当正常调用函数时,函数f中,this是指向window的。
如果我们希望this指向我们自己定义的变量时,可以使用call和apply方法,
如以下代码:
var obj={
name:'袁文军',
age:26
};
f.call(obj,1,2); // 则函数f中的this是指向obj的,apply的用法和call的用法是类似的,只是apply中的参数是放在数组总的
f.apply(obj,[1,2]);
但也要注意的就是:当obj为普通类型时(值类型),则转成对应的包装类型;如果是null、undefined时,则this执行window对象。