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

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

例如:

$(function(){
			
		
			test1(test3('22'));
			
		})
		function test1(Func)
		{
			//Func(value)
		}
		function test3(data)
		{
			alert(data);
		}
		
上述代码执行后会直接弹出‘22’,因为test3(‘22’)传过去就直接执行了,而不是作为参数传过去。

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

$(function(){
			
		
			test1(function(){
				test3('22')
				
			});
			
		})
		function test1(Func)
		{
			Func()
		}
		function test3(data)
		{
			alert(data);
		}

               2:将方法和参数分开

$(function(){
			
		
			test1('22',test3);
			
		})
		function test1(value,Func)
		{
			Func(value)
		}
		function test3(data)
		{
			alert(data);
		}
		

                  

你可能感兴趣的:(js)