【问题标题】:How to concatenate variable inside function name? [duplicate]如何在函数名中连接变量? [复制]
【发布时间】:2014-08-29 05:26:42
【问题描述】:

我有这个代码:

var a = 1;

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

test1();

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

Uncaught SyntaxError: Unexpected token +

那么如何将变量a 连接到最终在此处运行函数test1test

jsFiddle

【问题讨论】:

标签: javascript variables


【解决方案1】:

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

var a = 1;

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

test1();

jsFiddle

PS - 在极少数情况下你应该做这样的事情。如果您不确定,请编辑您的问题。可能有比使用附加到全局窗口对象的动态命名函数更好的方法来实现您想要的。可以做不代表就应该做。

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 2015-08-17
      • 2015-07-27
      • 2020-04-29
      • 2015-10-16
      相关资源
      最近更新 更多