如何在函数名称内连接变量?

时间:2014-08-29 05:26:43

标签: javascript variables

我有这段代码:

var a = 1;

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

test1();

我从浏览器控制台收到此错误:

Uncaught SyntaxError: Unexpected token +

那么如何将变量a连接到最终运行函数test的{​​{1}}?

jsFiddle

2 个答案:

答案 0 :(得分:4)

在javascript中,全局声明的所有变量/方法都是对象window的成员,因此您可以这样声明函数:

var a = 1;

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

test1();

jsFiddle

PS - 很少有你应该做这样的事情。如果您不确定,请编辑您的问题。除了使用附加到全局窗口对象的动态命名函数之外,可能有更好的方法来实现您的需求。仅仅因为它可以做到并不意味着它应该是。

答案 1 :(得分:1)

试试这个:

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