JavaScript动态函数名称

Joh*_*n R 0 javascript

我需要动态地将函数的名称分配给关联数组的元素.这是我的尝试不起作用.我要求帮助的问题是在这里我尝试调用函数:cr['cmd1'](x);

<!DOCTYPE html>

<html>
<head>
    <script type="text/javascript">
        var cr =[];
        var x = 5;
        cr['cmd1'] ='foo';
        var msg = cr['cmd1'](x);  
        alert(msg);

        function foo(y){
            return y;
        }
    </script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

编辑:我在这里传递了一个cr['cmd1'] ='foo';我无法控制的字符串.这就是为什么我必须使用字符串作为外部应用程序的起点.

Kir*_*oll 5

如果要将其存储为函数,请直接传递函数.否则,如果您只想将其存储为字符串,则可以使用引号.

更改:

cr['cmd1'] ='foo';
Run Code Online (Sandbox Code Playgroud)

至:

cr['cmd1'] = foo;
Run Code Online (Sandbox Code Playgroud)


Sta*_*arx 5

使用此语法访问函数 window[function_name]('para1');

您的用法将是这样的

var msg = window[cr['cmd1']](x);
Run Code Online (Sandbox Code Playgroud)