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