(希望我的术语正确......)
我的代码,非常简化:
function foo(parm1, fn){
// do stuff with parm1, and then...
window[fn]();
}
function bar(){
// do the other thing
}
然后将其调用为:
foo('some string', 'bar');
我想使用函数表达式(?),如下所示:
foo('some string', function(){ // do the other thing });
同时保留传递函数名称的选项,如第一个示例中所示' bar'必须要做的是很多步骤。我试过了
function foo(parm1, fn){
// do stuff with parm1, and then...
if(typeof fn != 'function'){
window[fn]();
} else {
return true;
}
}
foo('some string', function(){ // but this never fires });
我可以两种方式吗?
答案 0 :(得分:1)
你可以。如果它是函数,您忘记调用fn
:
if(typeof fn != 'function'){
window[fn]();
} else {
fn(); // fn is (probably) a function so lets call it
}