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

How can I set a local variable using a string?

本文关键字:局部变量 设置 字符串 何使用      更新时间:2023-09-26

我需要在函数的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 变得全局。

一种方法是使用对象 您可以使用括号表示法将对象的变量名称设置为字符串

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

最后但不安全的方法是使用:

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

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