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