Javascript 如何在函数名中连接变量?

Javascript 如何在函数名中连接变量?,javascript,variables,Javascript,Variables,我有以下代码: var a = 1; function test + a() { alert('test'); } test1(); 我从浏览器控制台收到此错误: Uncaught SyntaxError: Unexpected token + 那么,我如何将变量a连接到test,最终在这里运行函数test1 在javascript中,全局声明的所有变量/方法都是对象窗口的成员,因此可以通过以下方式声明函数: var a = 1; window['test' + a]

我有以下代码:

var a = 1;

function test + a() {
    alert('test');    
}

test1();
我从浏览器控制台收到此错误:

Uncaught SyntaxError: Unexpected token +
那么,我如何将变量
a
连接到
test
,最终在这里运行函数
test1


在javascript中,全局声明的所有变量/方法都是对象
窗口的成员,因此可以通过以下方式声明函数:

var a = 1;

window['test' + a] = function() {
    alert('test');    
}

test1();


PS-很少有情况下你应该做这样的事情。如果您不确定,请编辑您的问题。与使用附加到全局窗口对象的动态命名函数相比,可能有更好的方法实现您想要的功能。仅仅因为可以这样做并不意味着应该这样做。

在javascript中,全局声明的所有变量/方法都是对象
窗口的成员,因此可以通过以下方式声明函数:

var a = 1;

window['test' + a] = function() {
    alert('test');    
}

test1();

PS-很少有情况下你应该做这样的事情。如果您不确定,请编辑您的问题。与使用附加到全局窗口对象的动态命名函数相比,可能有更好的方法实现您想要的功能。仅仅因为它可以做到并不意味着它应该做到。

试试这个:

var a = 1;
var name="test"+a;
var func = new Function(
     "return function " + name + "(){ alert('test');    }"
)();
//function call
func();
试试这个:

var a = 1;
var name="test"+a;
var func = new Function(
     "return function " + name + "(){ alert('test');    }"
)();
//function call
func();

Ref、、只需将函数分配给给定的“动态变量名”。但更好的方法是:使用显式数组/对象并将函数映射到index/properties.Ref,只需将函数分配给给定的“动态变量名”。但更好的方法是:使用显式数组/对象,并将函数映射到索引/属性。