欢迎各位兄弟 发布技术文章
这里的技术是共享的
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...