如何使用字符串设置局部变量?

时间:2014-12-21 22:35:07

标签: javascript scope

我需要在函数的for循环中设置一个局部变量,但是这个var的部分名称需要是一个字符串,更具体地说是一个数组索引。

参见示例:

function MyFunction () {
    var strings = ["first","second","third","fourth"];

    for (var i = 0; i < strings.length; i++) {
        var "My_" + strings[i] + "_var" = "Hi, I'm the " + strings[i] + " var!";
    }
}

我知道这不是正确的方法,我只是说明我想做什么。我已经尝试过使用window[]this[],但似乎var变得全局化了。

1 个答案:

答案 0 :(得分:0)

我没有测试过,但我会用:

eval('var '+name+' = '+value+';');

Eval将字符串评估为javascript命令,因此您可以使用动态名称来组成变量。

使用对象的另一个选项可以使用括号表示法将对象的变量命名为字符串

 var obj = {};
 var name = ['first'];
 obj[name[0]]='whatever';