js中call和apply的用法

call的用方法: 

Javascript代码  收藏代码
  1. var obj = {  
  2.      arg1: 1,  
  3.      arg2: 2  
  4. }  
  5. function f(a,b){  
  6.      return this.arg1 + this.arg2 + a + b;  
  7. }  
  8.   
  9. var r = f.call(obj,3,4);  // r =10  



等同于: 

Javascript代码  收藏代码
  1.  var obj = {  
  2.      arg1: 1,  
  3.      arg2: 2  
  4. }  
  5.   
  6.   
  7. function f(a,b){  
  8.      return this.arg1 + this.arg2 + a + b;  
  9. }  
  10.   
  11.   
  12. obj.m = f;  
  13. var r = obj.m(3,4);  
  14. delete obj.m;  



applay和call方法相似,只不过要传递的参数以数组的形式制定上面的代码调用apply可写成: 

Javascript代码  收藏代码
  1. var obj = {  
  2.      arg1: 1,  
  3.      arg2: 2  
  4. }  
  5. function f(a,b){  
  6.      return this.arg1 + this.arg2 + a + b;  
  7. }  
  8.   
  9. var r = f.apply(obj,[3,4]);  // r =10  

 

posted @ 2015-07-31 14:48  酸酸の柚子  阅读(103)  评论(0编辑  收藏  举报