关于javascript中apply和call方法的区别

 我来答
球球的前端奶茶屋
2016-03-12 · TA获得超过665个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:297万
展开全部

call和apply的作用一样,只是方法传递的参数不同。

call语法:call(thisObj,Object)

apply语法:apply(thisObj,[argArray])

下面给你举个例子把

图片右边代码片段中,声明数组a和b,函数addArr()能向调用它的数组压入3个参数。

addArr.call(a, 1, 2, 3)和addArr.apply(b, 1, 2, 3)的效果都是一样的,都是向数组依次压入1,2,3这三个数。

由此看出call和apply的区别是传入参数方式的区别,

call的话是Function.call(obj,arg[0],arg[1]……arg[n]);

参数是一个对象和参数列表

而apply是array=[arg[0],arg[1]……arg[n]];

               Function.apply(obj,array);

参数是一个对象和一个数组类型的对象

个人建议普通情况使用call,参数个数很多的时候才使用apply,不过主要还是看个人的编码习惯啦~

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式