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方法相关推荐

  1. JavaScript中的call,apply,bind学习总结

    JavaScript 中的 call, apply, bind 这三个函数的作用和区别在各大论坛都被讨论了很多次了,但是我一直都还没来得及好好总结,这次正好看到了一个很不错的关于JavaScript ...

  2. javascript中call和apply的区别和用法

    javascript中call和apply的区别和用法 1.call和apply是什么 更改对象的内部指针指向,即改变对象的this指向的内容 function Fn(){this.name='小明' ...

  3. 区分JavaScript中slice与splice方法

    区分JavaScript中slice与splice方法 slice()方法是从已有的数组中返回通过索引选定的元素. 语法:array.slice(startIndex,endIndex) 参数star ...

  4. 5种JavaScript中常用的排序方法

    5种JavaScript中常用的排序方法 01.冒泡排序 通过相邻数据元素的交换,逐步将待排序序列变为有序序列,如果前面的数据大于后面的数据,就将两值进行交换,将数据进行从小到大的排序,这样对数组的第 ...

  5. javascript中call和apply的区别

    我理解javascript中call和apply的区别仅在于语法不同. 下例中分别调用call和apply对myObj进行修改,语法不同,但使用效果是一样的: var myObj = { " ...

  6. php中this的使用技巧,JavaScript中this关键字使用方法详解

    JavaScript中this关键字使用方法详解 在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了 ...

  7. JavaScript中call、apply个人理解

    JavaScript中call.apply个人理解 一句话即通俗的说:call.apply 是为了改变this的状态而存在的 var lisi = {name:'李四',age:23};var zs ...

  8. 【Java 8 新特性】Java 8中的Function.apply方法

    Java 8中的Function.apply方法 参考文献 java.util.function.Function是一个接口,已经在 Java 8中引入. Function是一个函数接口. 因此它可以 ...

  9. JavaScript中遍历数组的方法

    目录 JavaScript中遍历数组的方法 1.for 循环遍历 2.forEach 遍历 3.map 遍历 4.for...of 遍历 5.filter 遍历 6.some 遍历 7.keys,va ...

最新文章

  1. 中国钢铁行业战略规划及项目建设动态分析报告2021-2027年
  2. IBM informix .net provider
  3. 130.ssm项目中添加日志 log4j
  4. PL/SQL程序设计(一)—— PL/SQL程序设计简介
  5. 自定义权限 android,如何在Android中使用自定义权限?
  6. 电脑老是提示虚拟内存不足的原因及解决办法
  7. el-autocomplete判空校验时,第一次点击不通过,再次点击才正常
  8. 广搜,智能拼图(ZOJ1079)
  9. 将DEX反编译成Java源代码
  10. 基于ZStack构建物联网平台
  11. 加密php大马,webshell加密-加密你的大马
  12. 校园二手交易平台项目总结 ‎2013‎年‎12‎月‎23‎日,‏‎5:57:29
  13. 移远NB-IOT模块BC26资料
  14. 《赖氏经典英语语法》练习三 关系词
  15. 一文带你了解知识图谱融入预训练模型哪家强?九大模型集中放送
  16. 在 Excel UiPath 中插入或删除行或列
  17. Windows 10 PowerShell Activation Office Professional Plus 2016 Visio Professional 2016
  18. Oracle 11g安装报错
  19. HashMap引发死链问题(HashMap、ConcurrentHashMap原理解析)
  20. DBD::mysql的安装

热门文章

  1. java hashmap 添加_JAVA—HashMap
  2. php time()为空_PHP time()用法及代码示例
  3. 电脑小写字母怎么切换_电脑上也可以使用九州音集啦!
  4. ant文件放在ps的哪里_ant design vue按需导入icons
  5. elasticsearch的分布式架构原理
  6. 第一章:初识lucene
  7. linux系统下tar/gz/7z/xz/bz2/zip等各种格式的打包压缩解压
  8. lightGBM GPU支持的安装、验证方法
  9. 【ubuntu-anaconda-dlib】undefined symbol: _ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESa
  10. 太监式的自主知识产权研发特色 (Z)