JavaScript中call和apply方法

Posted 稀里糊涂林老冷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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  */

 

以上是关于JavaScript中call和apply方法的主要内容,如果未能解决你的问题,请参考以下文章

Javascript中call和apply的区别与详解

javascript 对象初探 --- call()和apply()初探

JavaScript中的apply()方法和call()方法使用介绍

关于javascript中call()和apply()方法的总结

JavaScript中call和apply方法

javascript中apply()和call()方法及区别