欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

关于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,不过主要还是看个人的编码习惯啦~

来自  http://zhidao.baidu.com/link?url=cnpEUwZJkSgIyridvJAlgA4hGUVvOv5QH4UcbzkwHsZPbVrbirIO_KUM75w1Jjj5tDf...

普通分类: