js 把函数作为参数传递给另一个方法

正常传方法不带参数的不做讨论了,看一下方法带参数的

例如:

[javascript] view plain copy
  1. $(function(){  
  2.               
  3.           
  4.             test1(test3('22'));  
  5.               
  6.         })  
  7.         function test1(Func)  
  8.         {  
  9.             //Func(value)  
  10.         }  
  11.         function test3(data)  
  12.         {  
  13.             alert(data);  
  14.         }  
  15.           
上述代码执行后会直接弹出‘22’,因为test3(‘22’)传过去就直接执行了,而不是作为参数传过去。

解决方法两种 :1:使用匿名函数

[javascript] view plain copy
  1. $(function(){  
  2.               
  3.           
  4.             test1(function(){  
  5.                 test3('22')  
  6.                   
  7.             });  
  8.               
  9.         })  
  10.         function test1(Func)  
  11.         {  
  12.             Func()  
  13.         }  
  14.         function test3(data)  
  15.         {  
  16.             alert(data);  
  17.         }  

               2:将方法和参数分开

[javascript] view plain copy
  1. $(function(){  
  2.               
  3.           
  4.             test1('22',test3);  
  5.               
  6.         })  
  7.         function test1(value,Func)  
  8.         {  
  9.             Func(value)  
  10.         }  
  11.         function test3(data)  
  12.         {  
  13.             alert(data);  
  14.         } 

猜你喜欢

转载自blog.csdn.net/qq_38836082/article/details/80816293