变量变量(使用另一个变量的名称创建变量)

时间:2010-10-19 15:15:25

标签: javascript

我想用变量名创建一个新变量, 例如:

function preloader(imglist) {

  var imgs = imglist.split("|");

    for (i in imgs) {

      var img_{i} = new Image;  //this is the line where i sucked in!
      img_{i}.src = imgs[i];    //another line where i sucked in!

    }
}

preloader("asd.jpg|qwe.jpg|dorama.png");

我尝试使用数组,但是,嗯......我怎么说...

var qwe = new Array();
qwe[1] = "asd"; //or not! whatever...

var qwe[1] = new Image; // it didnt work!
在php中你可以这样使用:

$var1 = "test";
$var2_{$var1} = "test last";
echo $var2_test; //or...
echo $var2_{$var1};

3 个答案:

答案 0 :(得分:2)

您不需要在此处执行此操作,可以存储和覆盖每个Image以获得相同的预加载效果,但这只会起作用:

function preloader(imglist) {
  var imgs = imglist.split("|");
  for (var i=0; i<imgs.length; i++) {
    new Image().src = imgs[i];
  }
}

请注意,我从for in循环更改了此内容,在迭代数组(不枚举)时应使用正常的索引for循环{} {} {} {{}}} CMS这更详细。

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以使用Eval()功能实现目标,如下所示;

var data = "testVariable";
eval("var temp_" + data + "= new Array();");
temp_testVariable[temp_testVariable.length]="Hello World";
alert("Array Length: " + temp_testVariable.length);
alert("Array Data: " + temp_testVariable[0]);

当然,这并不意味着这是正确的解决方案。我刚刚提供了有关能力的信息。

以下是包含上述示例的article以及使用Window对象的替代解决方案。