在JS中使字符串调用函数

ein*_*ein 1 javascript

我希望这个工作:

我定义了一个函数:

function callback_1() {
 // Do something
}
Run Code Online (Sandbox Code Playgroud)

我有一个定义回调的回调字符串:

var functionString = 'callback_' + 1 + '()';
Run Code Online (Sandbox Code Playgroud)

我想让该字符串实际调用函数callback_1我该怎么做?

Den*_*ret 6

因为你functionString实际上主要是一个函数的名字,你可以这样做

window['callback_' + 1]();
Run Code Online (Sandbox Code Playgroud)

这比eval仅执行您现有的功能更安全.

如果你想使用functionString你拥有的(最后用"()"),你可以使用

window[functionString.slice(0, -2)]();
Run Code Online (Sandbox Code Playgroud)