您的位置:首页 > 移动开发

Js中apply与call的区别与用法

2016-03-17 12:00 375 查看

解析:

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: