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[, ...
随机推荐
- 宝塔部署 vue + thinkphp
部署https://blog.csdn.net/xinxinsky/article/details/105441164?spm=1001.2101.3001.6650.2&utm_medium ...
- [服务器]Windows Server 2008 64位1核1G安装SQL Server2008
本文为原创文章,转载请注明出处!我的博客地址:http://www.cnblogs.com/txwd 这台服务器是2017年初买的,那时候1核1G,3年要1500.不过现在便宜了,2核4G,3年也就1 ...
- shell语法3-expr命令、read命令、echo命令
一.expr命令(注:常常配合``或者$()来取得所求的值) 1.expr用于求表达式的值:expr 表达式 注意: (1)用空格隔开每一项(2)用反斜杠放在shell特定的字符前面(发现表达式运行错 ...
- pycharm、pyqt5、pyuic、anaconda配置界面
转载一篇很棒的文档,讲解的是如何在pycharm里面使用QT desiger勾画界面并且将相应的界面转化成py文件 https://www.jianshu.com/p/8b992e47a0e4 个人 ...
- Java基础学习:5、递归
1.递归:就是方法自己调用自己. public class Test01 { public void test(int n) { if (n > 2) { test(n -1); } Syste ...
- Visual Studio 快速生成构造函数
生成构造函数快速操作 - Visual Studio (Windows) | Microsoft Learn 键盘 按 (Ctrl+.) 触发"快速操作和重构"菜单. 鼠标 右键单 ...
- django admin 字段设置
来源:http://xieboke.net/article/100/ django admin 后台里有些输入框长度.宽度.提示语等,可能不满足我们的需求,这个时候,我们就需要对 admin 的样式进 ...
- 牛客java基础语法在线编程-知识点小结(待完善)
知识点小结 一.输入输出 Scanner类 Scanner类在java.util包下,导包格式如下: import java.util.Scanner; 使用示例: import java.util. ...
- 接口测试工具POSTMAN的使用
接口测试工具postman python ------------------------------------ 作为后端,写好了接口,我们自己要测试通过,再给别人用 --------------- ...
- window操作
1.进入目录 cd ... 2. 进入D盘 D: 3.读取文件内容 type file