js apply 与 call
简介
用来调用方法,第一个参数替换掉用方法的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
js apply 与 call的更多相关文章
- 由js apply与call方法想到的js数据类型(原始类型和引用类型)
原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...
- [荐]Js apply()和call()方法详解 - http://www.w3cfuns.com/article-5596443-1-1.html
本帖最后由 默默DE人生 于 2013-3-19 13:22 编辑 Js apply方法详解我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文 ...
- Js apply 方法 详解
Js apply方法详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...
- Js apply() call()使用详解
Js apply方法详解我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里 ...
- Js apply 方法 具体解释
Js apply方法具体解释 我在一開始看到javascript的函数apply和call时,很的模糊,看也看不懂,近期在网上看到一些文章对apply方法和call的一些演示样例,总算是看的有点眉目了 ...
- Js apply call方法详解
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...
- Js apply()使用详解
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...
- Js apply方法详解,及其apply()方法的妙用
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...
- Js apply方法与call方法详解 附ES6新写法
我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家 ...
- js apply/call/caller/callee/bind使用方法与区别分析
一.call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容). Js代码 call([thisObj[,arg1[, arg2[, ...
随机推荐
- ubuntu 20.04 ibus添加五笔输入法
ubuntu 20.04 ibus添加五笔输入法:虽然现在五笔输入法已经没有什么新人使用,如果还有一两个人,找不到系统自带的极点五笔输入,可以按如下方式操作:以前是用ibus-setup,点添加,现在 ...
- jenkins构建触发器定时任务Build periodically和Poll SCM 后续研究
https://www.cnblogs.com/caoj/p/7815820.html
- 【转载】VMWare 各版本下载地址【centos7安装gerrit】
https://blog.csdn.net/weixin_44129085/article/details/110443135 centos7安装gerrit https://blog.csdn.ne ...
- class_schedule
#!/usr/bin/python # -*- coding: UTF-8 -*- class Schedule(object): def __init__(self, name=& ...
- android系统签名文件路径及签名方法
在系统源码路径下 签名文件路径:android/build/target/product/security/ 准备好签名工具:"signapk.jar" 位置:android/pr ...
- C# Socket 通信
C# Socket通信 Socket通信主要分为两部分,服务端和客户端,其中服务端和客户端都具有接收消息和发送消息的功能,具体通信流程就是服务端先去监听一个端口号,等待客户端的连接,客户端通过指定IP ...
- Django的urls的配置
在一个请求到达的时候,最先达到的就是视图层,然后根据url映射到视图函数.这一部分我们来说明url的配置. 概述 为了给一个应用设计URL,你需要创建一个Python 模块,通常称为URLconf(U ...
- uniapp 弹窗输入
借鉴链接:https://blog.csdn.net/qq_40894259/article/details/110200721 <template> <view class=&qu ...
- 浅谈JS中的element.style和window.getComputedStyle()的区别
MDN对于element.style的解释 被高光的句子中的inline style属性是指css内联样式,即元素的style属性的属性值 总结一下,element.style只能获取到元素的styl ...
- 玩玩 Visual Studio Code 和 MSYS2
注意:为了便于理解本文内容,您可能需要一些前置知识,例如命令行操作,编译器操作,路径操作,环境变量操作,vscode操作-- 众所周知 Visual Studio Code 是一个优秀的编辑器. 众所 ...