繁体   English   中英

Javascript〜在变量内调用函数

[英]Javascript ~ Calling a function inside a Variable

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

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;

干杯!

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

var propertyVal = myObj["propertyName"];

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

window[circuit](); 

我可以想到两种方式。

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

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

在此映射中,您正在将someValueotherValue与匿名函数相关联。 因此,假设您的选择框包含选项someValueotherValue ,则将根据选择的内容调用适当的函数。

然后,您要做的就是handlers[circuit]()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM