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

时间:2015-05-18 14:05:44

标签: javascript jquery

我正在尝试将函数名称及其参数作为参数传递并调用它

这是代码

$(document).ready(function(){
    runfn(getUserName,paramValue);
});

function runfn(fnName,param){
    fnName(param);
};

function getUserName(userId){
    alert(userId);
};

随时编辑this fiddle

我想使用此方法调用带参数的函数

2 个答案:

答案 0 :(得分:1)

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

此外,在您的情况下,您也可以将引用传递给函数。意思是,不要将函数名称指定为字符串,而是将其作为函数指定。

callMe(functionToCall);

function callMe(fn){
    fn();
}

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

答案 1 :(得分:1)

您需要将其作为函数名称而不是字符串

传递

<强> DEMO HERE

只需要进行更改的示例代码:

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

<强>更新

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

<强> UPDATED DEMO

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

function runfn(fnName){
    alert(fnName);
    fnName('name');
};

function test(name){
     alert(name);
};