有没有办法连接js函数名?现在我有这个:
switch (playId) {
case "11":
play11();
break;
case "22":
play22();
break;
case "33":
play33();
break;
case "44":
play44();
break;
default:
break;
}
我想做这样的事情:
var function = "play" + playId + "()";
并称之为..如果可能,最好的方法是什么?
解决方案:
我在thefourtheye
和xdazz
的帮助下所做的非常简单:
var playFunction = window["play" + playId];
playFunction();
答案 0 :(得分:6)
最好的方法是将它们放在像这样的对象中
var functions = {
11: play11,
22: play22,
33: play33,
44: play44
};
然后像这样调用它
functions[taksId]();
由于如果找不到taskId
您不想失败,您可以
if (functions.hasOwnProperty(taskId)) {
functions[taksId]();
}
答案 1 :(得分:6)
如果这些函数是在全局范围内定义的,那么您可以从全局对象中获取它们:
var foo = window["play" + taskId];
否则你可以将它们放在一个对象中,就像建议的另一个答案一样。
答案 2 :(得分:1)
如果将函数放在数组中:
var functions = {
'play1':function(){},
'play2':function(){}
}
这样称呼:
functions['play'+number]();