js中的连接函数名称

Par*_*Par 3 javascript string-concatenation

有没有办法连接js函数名?现在我有这个:

switch (playId) {
        case "11":
            play11();
            break;
        case "22":
            play22();
            break;
        case "33":
            play33();
            break;
        case "44":
            play44();
            break;
        default:
            break;
    }
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

var function = "play" + playId + "()";
Run Code Online (Sandbox Code Playgroud)

并称之为..如果可能的话,最好的方法是什么?


解:

在帮助下我做了什么thefourtheye,xdazz非常简单:

var playFunction = window["play" + playId];
    playFunction();
Run Code Online (Sandbox Code Playgroud)

the*_*eye 7

最好的方法是将它们放在这样的对象中

var functions = {
    11: play11,
    22: play22,
    33: play33,
    44: play44
};
Run Code Online (Sandbox Code Playgroud)

然后像这样调用它

functions[taksId]();
Run Code Online (Sandbox Code Playgroud)

如果taskId找不到你就不想失败,你可以这样做

if (functions.hasOwnProperty(taskId)) {
    functions[taksId]();
}
Run Code Online (Sandbox Code Playgroud)


xda*_*azz 6

如果这些函数是在全局范围内定义的,那么您可以从全局对象中获取它们:

var foo = window["play" + taskId];
Run Code Online (Sandbox Code Playgroud)

否则你可以将它们放在一个对象中,就像建议的另一个答案一样