JavaScript中call和apply方法
1 /* 2 在js中 call和apply常用于绑定作用域 3 */ 4 //1 简单的绑定 5 function sum(a,b){ 6 return a+b; 7 } 8 //将sum的功能绑定给test2来执行 9 function test2(a,b){ 10 return sum.call(this,a,b); 11 } 12 // call 和apply的区别是 apply接收数组作为参数 13 function test3(a,b){ 14 return sum.apply(this,[a,b]); 15 } 16 17 18 19 //2 临时绑定调用者 解耦 20 var obj = { 21 color:"red", 22 name:"z3" 23 }; 24 25 function showInfo(){ 26 alert(this.color); 27 alert(this.name); 28 } 29 //在js中 this指定是调用者。哪个对象调用函数this就是哪个对象 30 //如果我们想用showInfo去操作obj,那就要用obj去调用这个对象 31 //用call绑定obj给函数 就可以实现,可以减少函数和对象的耦合 32 showInfo.call(obj); //好像是用obj去调用这个方法,提高了showInfo函数的重用性 33 34 /* 35 内部实际上是: 36 1 将obj绑定一个函数method = shouwInfo 37 2 用obj去执行method() 38 3 删除method 39 这样一个过程 40 */
转载于:https://www.cnblogs.com/Lin-Yi/p/7427118.html
JavaScript中call和apply方法相关推荐
- JavaScript中的call,apply,bind学习总结
JavaScript 中的 call, apply, bind 这三个函数的作用和区别在各大论坛都被讨论了很多次了,但是我一直都还没来得及好好总结,这次正好看到了一个很不错的关于JavaScript ...
- javascript中call和apply的区别和用法
javascript中call和apply的区别和用法 1.call和apply是什么 更改对象的内部指针指向,即改变对象的this指向的内容 function Fn(){this.name='小明' ...
- 区分JavaScript中slice与splice方法
区分JavaScript中slice与splice方法 slice()方法是从已有的数组中返回通过索引选定的元素. 语法:array.slice(startIndex,endIndex) 参数star ...
- 5种JavaScript中常用的排序方法
5种JavaScript中常用的排序方法 01.冒泡排序 通过相邻数据元素的交换,逐步将待排序序列变为有序序列,如果前面的数据大于后面的数据,就将两值进行交换,将数据进行从小到大的排序,这样对数组的第 ...
- javascript中call和apply的区别
我理解javascript中call和apply的区别仅在于语法不同. 下例中分别调用call和apply对myObj进行修改,语法不同,但使用效果是一样的: var myObj = { " ...
- php中this的使用技巧,JavaScript中this关键字使用方法详解
JavaScript中this关键字使用方法详解 在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了 ...
- JavaScript中call、apply个人理解
JavaScript中call.apply个人理解 一句话即通俗的说:call.apply 是为了改变this的状态而存在的 var lisi = {name:'李四',age:23};var zs ...
- 【Java 8 新特性】Java 8中的Function.apply方法
Java 8中的Function.apply方法 参考文献 java.util.function.Function是一个接口,已经在 Java 8中引入. Function是一个函数接口. 因此它可以 ...
- JavaScript中遍历数组的方法
目录 JavaScript中遍历数组的方法 1.for 循环遍历 2.forEach 遍历 3.map 遍历 4.for...of 遍历 5.filter 遍历 6.some 遍历 7.keys,va ...
最新文章
- 中国钢铁行业战略规划及项目建设动态分析报告2021-2027年
- IBM informix .net provider
- 130.ssm项目中添加日志 log4j
- PL/SQL程序设计(一)—— PL/SQL程序设计简介
- 自定义权限 android,如何在Android中使用自定义权限?
- 电脑老是提示虚拟内存不足的原因及解决办法
- el-autocomplete判空校验时,第一次点击不通过,再次点击才正常
- 广搜,智能拼图(ZOJ1079)
- 将DEX反编译成Java源代码
- 基于ZStack构建物联网平台
- 加密php大马,webshell加密-加密你的大马
- 校园二手交易平台项目总结 2013年12月23日,5:57:29
- 移远NB-IOT模块BC26资料
- 《赖氏经典英语语法》练习三 关系词
- 一文带你了解知识图谱融入预训练模型哪家强?九大模型集中放送
- 在 Excel UiPath 中插入或删除行或列
- Windows 10 PowerShell Activation Office Professional Plus 2016 Visio Professional 2016
- Oracle 11g安装报错
- HashMap引发死链问题(HashMap、ConcurrentHashMap原理解析)
- DBD::mysql的安装
热门文章
- java hashmap 添加_JAVA—HashMap
- php time()为空_PHP time()用法及代码示例
- 电脑小写字母怎么切换_电脑上也可以使用九州音集啦!
- ant文件放在ps的哪里_ant design vue按需导入icons
- elasticsearch的分布式架构原理
- 第一章:初识lucene
- linux系统下tar/gz/7z/xz/bz2/zip等各种格式的打包压缩解压
- lightGBM GPU支持的安装、验证方法
- 【ubuntu-anaconda-dlib】undefined symbol: _ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESa
- 太监式的自主知识产权研发特色 (Z)