关于javascript中apply和call方法的区别
展开全部
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,不过主要还是看个人的编码习惯啦~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询