首页 > 其他分享 >js apply 与 call

js apply 与 call

时间:2022-12-28 17:00:43浏览次数:45  
标签:index Number js item call apply

简介

用来调用方法,第一个参数替换掉用方法的this对象

区别:
call:A.fn.call(B, arg1,arg2,argn...),后面的参数用逗号分隔

apply:A.fn.apply(B, [arg1,arg2,argn...]),后面的参数是数组

当fn是匿名函数时,可以省略。

示例

比如实现一个迭代器:

使用apply:

var each = function (arr, callback) {
for (var i = 0, len = arr.length; i<len; i++) {
callback.apply(arr[i], [i, arr[i]])
}
}

each([1,2,3,4,5], function(i, el) {
console.log('this:',this, 'index: ',i, 'item: ', el)
})

 

使用call:

var each = function (arr, callback) {
for (var i = 0, len = arr.length; i<len; i++) {
callback.call(arr[i], i, arr[i])
}
}

each([1,2,3,4,5], function(i, el) {
console.log('this:',this, 'index: ',i, 'item: ', el)
})

 

两者均输出:

this Number {1} index:  0 item:  1
init.js:1 this Number {2} index:  1 item:  2
init.js:1 this Number {3} index:  2 item:  3
init.js:1 this Number {4} index:  3 item:  4
init.js:1 this Number {5} index:  4 item:  5

 

标签:index,Number,js,item,call,apply
From: https://www.cnblogs.com/bigjor/p/17010525.html

相关文章