[英]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() {
...
}
};
在此映射中,您正在将someValue
和otherValue
与匿名函数相关联。 因此,假设您的选择框包含选项someValue
和otherValue
,则将根据选择的内容调用适当的函数。
然后,您要做的就是handlers[circuit]()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.