如何根据字符串参数在对象内部找到并执行函数?查找并执行与字符串匹配的JavaScript函数
请看下面的例子:
var parameters = 'people';
switch (parameters) {
case 'people':
people.initialize();
break;
}
如何删除开关case语句在这种情况下?只需知道对象的字符串名称就可以调用对象吗?
如何根据字符串参数在对象内部找到并执行函数?查找并执行与字符串匹配的JavaScript函数
请看下面的例子:
var parameters = 'people';
switch (parameters) {
case 'people':
people.initialize();
break;
}
如何删除开关case语句在这种情况下?只需知道对象的字符串名称就可以调用对象吗?
组织你的对象......
var myObjects = {
people: someObject,
notPeople: someOtherObject
};
var parameters = 'people';
myObjects[parameters].initialize();
如果您正在使用全局玩(做全局未播放),那么你可以逃脱:
window[parameters].initialize();
...但组织它们在逻辑对象是一个更好的选择。
function people() { alert('You called people().'); }
var parameters = 'people';
eval(parameters+'()');
这应该给你一个警告说“你叫人()”。
您可以随时使用eval ...
您可以使用eval。
或者你可能想用一个字符串使用“工厂模式” http://en.wikipedia.org/wiki/Factory_method_pattern
对象宣布自己的工厂。一旦你有一个字符串请工厂给你的对象。
谢谢,工厂模式非常有趣和相关。 – Victor 2010-09-26 05:05:51
eval效率低下,很难调试,并且遇到范围问题。尽可能避免它(几乎总是)。 – Quentin 2010-09-24 12:27:52
Eval由于相同的原因使SQL注入成为危险是一个问题。最好使用David Dorward的方法。 – ssokolow 2010-09-24 12:28:20
我同意。 [至少7个以上的字符。] – 2010-09-24 12:32:14