解析:
apply与call是更改对象的内部指针,即改变对象的this指向的内容。
call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this。后面的参数都是传递给当前对象的参数。
参数区别:
apply传入的必须是一个参数数组,也就是将多个参数组合成为一个数组传入,而call没有此限制。
代码分析:
var func=new function(){this.a="fun"};
var myfunc=function(s){
var a="myfunc";
console.log(this.a);
console.log(a);
console.log(s);
};
myfunc.call(func,"test"); //fun myfunc test
myfunc.apply(func,["test"]); //fun myfunc test
myfunc.call(func,["test"]); //fun myfunc ["test"]
myfunc('444') //undefined myfunc 444
ps:鉴于个人经验有限,所有观点,如有异议,请直接回复讨论(请勿发表攻击言论)。
加入QQ群209952809(需回答问题,答案为csdn);群聊更快解决问题,更happy。