zl程序教程

您现在的位置是:首页 >  前端

当前栏目

JavaScript中call和apply方法

JavaScript方法 call apply
2023-09-27 14:28:48 时间

 

 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  */