将函数名作为参数传递给另一个函数并在javascript中调用它

pass function name as parameter to another function and call it in javascript

本文关键字:函数 javascript 调用 参数传递 另一个      更新时间:2023-09-26

我试图传递一个函数名和它的参数作为参数,并调用它

代码

$(document).ready(function(){
    runfn(getUserName,paramValue);
});
function runfn(fnName,param){
    fnName(param);
};
function getUserName(userId){
    alert(userId);
};

请随意编辑

我想用这个方法调用带参数的函数

如果需要的话,可能需要使用eval()。请注意,这有潜在的安全问题。你也可以直接调用全局窗口对象上的函数:window[fnName]();

此外,在您的情况下,您还可以将引用传递给函数。也就是说,不要将函数名指定为字符串,而只需将其指定为函数。

callMe(functionToCall);
function callMe(fn){
    fn();
}
function functionToCall(){
    alert('Called!');
}

你需要把它作为函数名传递,而不是字符串

演示

只是需要更改的示例代码:

$(document).ready(function(){
alert("loaded");
    runfn(test);
});

更新:

只需在调用函数的阶段传递参数,如下所示:

<<p> 更新演示/strong>
$(document).ready(function(){
    alert("loaded");
    runfn(test);
});
function runfn(fnName){
    alert(fnName);
    fnName('name');
};
function test(name){
     alert(name);
};