Javascript~在变量中调用函数

时间:2011-05-05 16:35:36

标签: javascript function variables

我有一个变量,即函数名称。我希望能够从变量中调用该函数。

var CircuitBox= document.getElementById("QLCS")
var CircuitNumber = CircuitBox.selectedIndex;
var circuit = CircuitBox.options[CircuitNumber].value;

// This Variable takes on the functions name that id like to call       
circuit;

干杯!

2 个答案:

答案 0 :(得分:1)

在JavaScript中,可以使用括号表示法通过名称作为字符串访问对象属性,例如:

var propertyVal = myObj["propertyName"];

由于全局作用域成员实际上是Global对象的属性,因此可以从window对象(它是对Global对象的引用)获取属性。因此,如果您的下拉列表包含映射到全局范围中的函数名称的值,则可以像这样调用该函数:

window[circuit](); 

答案 1 :(得分:0)

我可以想到两种方式。

如果它是全局函数,您可以尝试window[circuit]()。另一种选择是使用eval,但eval是邪恶的。因此,为了避免eval的邪恶,更好的方法是维护处理程序的地图:

var handlers = {
   someValue: function() {
      ...
   },
   otherValue: function() {
      ...
   }
};

在此地图中,您将someValueotherValue与匿名函数相关联。因此,假设您的选择框包含选项someValueotherValue,将根据所选内容调用相应的函数。

然后你所要做的就是handlers[circuit]()