0
(希望我已经得到了正确的术语...)的javascript:传递一个函数名称与IIFE
我的代码,大大简化:
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 });
我可以两种方法吗?
'函数foo(PARM1,FN){// 做PARM1东西,然后...... 如果(typeof运算FN == '功能' ){ window [fn](); } else { fn(); } } foo('some string',function(){console.log('function callback ...');});' – Ibro
如果第二个参数是一个字符串但不是全局函数,你也可以检查'typeof window [fn] =='function'' – James