如何调用名称在字符串中定义的函数?

时间:2013-04-11 09:07:52

标签: javascript jquery

我将基于情境的参数中的函数A或B的名称传递给另一个函数C.如何在函数C中调用它?

3 个答案:

答案 0 :(得分:2)

如果全局定义A,则window["A"]()。但是,没有必要在javascript中这样做。只需传递函数本身而不是名称:

function foo() {...}

// BAD
function callFunc(someName) { window[someName]() }
callFunc("foo")

// GOOD
function callFunc(someFunc) { someFunc() }
callFunc(foo)

答案 1 :(得分:2)

像这样:

window[varName]()

假设它在全球范围内

如果你有

function A() {}
function B() {}

然后你可以做

function C(parm) {
  parm();
}

如果您使用C(A)C(B)

进行调用

<强> DEMO

答案 2 :(得分:2)

您可以将函数分配给对象的属性。然后在执行函数中,根据传递给函数的参数,按名称引用属性。

var myFuncs = {
   a: function(){
     alert("Hello");
   },
   b: function(){
     alert("Goodbye");
   }
};

function execute(name){
   myFuncs[name]();
}

execute("a");
execute("b");

工作示例 http://jsfiddle.net/ud6BS/