0

我根据情况将参数中的函数 A 或 B 的名称传递给另一个函数 C。如何在函数 C 中调用它?

4

3 回答 3

2

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

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

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

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

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

于 2013-04-11T09:10:06.523 回答
2

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

function foo() {...}

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

// GOOD
function callFunc(someFunc) { someFunc() }
callFunc(foo)
于 2013-04-11T09:08:41.867 回答
2

像这样:

window[varName]()

假设它在全球范围内

如果你有

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

那么你可以做

function C(parm) {
  parm();
}

如果你用C(A)or调用它C(B)

演示

于 2013-04-11T09:08:52.670 回答