如何将函数名称作为参数传递,然后再引用该函数?

sil*_*r27 1 javascript parameters jquery function parameter-passing

我想将函数"testMath"的名称作为字符串传递给名为"runTest"的包装函数作为参数.然后在'runTest'里面我会调用传递的函数.我这样做的原因是因为我们有一组通用数据,无论测试如何都会填充到变量中,然后根据用户想要测试的内容调用特定的测试.我试图使用javascript/jquery来做到这一点.实际上,该功能要复杂得多,包括一些ajax调用,但这种情况突出了基本的挑战.

//This is the wrapper that will trigger all the tests to be ran
function performMytests(){
     runTest("testMath");    //This is the area that I'm not sure is possible
     runTest("someOtherTestFunction");
     runTest("someOtherTestFunctionA");
     runTest("someOtherTestFunctionB");
}


//This is the reusable function that will load generic data and call the function 
function runTest(myFunction){
    var testQuery = "ABC";
    var testResult = "EFG";
    myFunction(testQuery, testResult); //This is the area that I'm not sure is possible
}


//each project will have unique tests that they can configure using the standardized data
function testMath(strTestA, strTestB){
     //perform some test
}
Run Code Online (Sandbox Code Playgroud)

Gol*_*rol 6

你需要函数名作为字符串吗?如果没有,你可以像这样传递函数:

runTheTest(yourFunction);


function runTheTest(f)
{
  f();
}
Run Code Online (Sandbox Code Playgroud)

否则,你可以打电话

window[f]();
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为"全局"范围内的所有内容实际上都是窗口对象的一部分.