JavaScript〜调用变量中的函数
问题描述:
我有一个变量是函数名称。我希望能够从变量调用该函数。JavaScript〜调用变量中的函数
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"];
而且,由于全球范围的成员其实是全局对象的属性,你可以从属性窗口对象(它是对全局对象的引用)。所以,如果您的下拉列表中包含了映射在全球范围内发挥作用的名称值,你可以这样调用该函数:
window[circuit]();
+0
非常适合TY! – Sam 2011-05-05 16:53:39
答
我能想到的两种方法。
如果是全局函数,则可以尝试window[circuit]()
。另一种选择是使用eval
,但eval
是邪恶的。因此,为了避免eval
的邪恶,更好的方法可能是保持地图的处理程序:
var handlers = {
someValue: function() {
...
},
otherValue: function() {
...
}
};
在这张地图上,你使用匿名函数关联someValue
和otherValue
。因此,假设您的选择框包含选项someValue
和otherValue
,将根据他们选择的内容调用相应的函数。
那么你所要做的就是handlers[circuit]()
。
我认为您的意思是JavaScript。 Java和JavaScript是不一样的,甚至是相关的。 – gilly3 2011-05-05 16:38:19
如果它是一个全局函数,那么:'window [circuit]()'。 – 2011-05-05 16:39:57