我有这段代码:
var a = 1;
function test + a() {
alert('test');
}
test1();
我从浏览器控制台收到此错误:
Uncaught SyntaxError: Unexpected token +
那么如何将变量a
连接到最终运行函数test
的{{1}}?
答案 0 :(得分:4)
在javascript中,全局声明的所有变量/方法都是对象window
的成员,因此您可以这样声明函数:
var a = 1;
window['test' + a] = function() {
alert('test');
}
test1();
PS - 很少有你应该做这样的事情。如果您不确定,请编辑您的问题。除了使用附加到全局窗口对象的动态命名函数之外,可能有更好的方法来实现您的需求。仅仅因为它可以做到并不意味着它应该是。
答案 1 :(得分:1)
试试这个:
var a = 1;
var name="test"+a;
var func = new Function(
"return function " + name + "(){ alert('test'); }"
)();
//function call
func();