昨天同事问了我一个挺有意思的问题,就是JS如何把函数当作参数传进另一个函数中执行,上网找了一个并做一个总结,目前我能理解并正常使用的两种方法:
方法一:定义主调函数
//func :方法名
//str:参数
function test1(func,str){if(str==null){
func();
}else{
func(str);
}
}
//定义被调函数
function test2(str){alert(str);
}
//调用方法
function hello(){test1(test2,'hello');
}
方法二:
function test1(func){
eval(func);
}
function test2(str){
alert(str);
}
//调用方法:
function hello(){
test1('test2("hello")');
}
均已经测试过,可以实现。