www.rspz.net > js ArrAy CAll

js ArrAy CAll

概念: call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的。换句话说,就是为了改变函数体内部 this 的指向。 例如: 通过document.getElementsByTagName选择的dom 节点是一种类似array的array。它不能应用Array下的push,po...

js中的call和apply的确有一点复杂,下面请听我慢慢道来 先说apply用法, obj.apply(obj,args):传递两个参数,obj代替传入类中的this对象,args代替传入类中的参数(数组形式) obj.call(obj,arg1,arg2):和apply用法类似,只是后面的传值不同,...

给楼主一个链接,看完绝对知道它们的用法: http://blog.csdn.net/qianzai5765638/article/details/6952321

这句话相当于Array.slice.call(arguments),目的是将arguments对象的数组提出来转化为数组,arguments本身并不是数组而是对象

Javascript的每个Function对象中有一个apply方法: function.apply([thisObj[,argArray]]) 还有一个类似功能的call方法: function.call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 它们各自的定义: apply:应用某一对象的一个方法,用另一个对象...

相同点,都是改变this上下文。 不同点,传递参数call是一个一个传。apply是直接数组参数 func.call( this, param1, param2, ... ); func.apply( this, [ param1, param2, ... ] );

call(context,params...) 第一个是上下文,后面的是参数(枚举) apply(context,arr) 第一个是上下文,后面的是参数(一个数组)

使用call和apply方法,主要是为了修改函数运行时的this指针。 将你的代码修改下,就知道区别了: var each = function(array, fn){ for(var index in array){ // 这里使用 // fn(index, array[index]) 形式或 // fn.call(null, index, array[ind...

call() 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法. 所以,你调用的方法的返回值就是你所谓的call的返回值了。 例如: var a = function(){return 1;} a.call(this); 1

给你举个例子 定义数组a里有3个元素1,2,3,函数add()能向调用它的数组压入一个数,这个数是3个参数之和 add.call(a,1,2,3);和add.apply(a,b);的效果都是一样的,都是向数组a压入(1+2+3) 由此看出call和apply的区别是传入参数方式的区别, call的...

网站地图

All rights reserved Powered by www.rspz.net

copyright ©right 2010-2021。
www.rspz.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com