call与apply用法
使用哪个对象去调用相应的方法;
var name="window";
var obj={
name:"obj"
}
function test(){
console.log(this.name);
}
test();
test.call(obj);
test.apply(obj);
上面两行代码就是使用obj对象进行调用test方法;所以输出的是obj,而不是window
call(obj,[arg0],[arg1],.....);//参数可传可不传
apply(obj,[,arg0,arg1]);//参数可传可不传
两个调用方式基本相同;
利用apply很容易可以把一个数组传递给一个可变参数方法;
如我们要调用js api中的Math.max(x...);
var arr=[1,4,2,45,12,345];
Math.max.apply(null,arr);