Javascript 如何向构造的对象添加索引?

Javascript 如何向构造的对象添加索引?,javascript,Javascript,On(document).ready im希望在某个父元素内动态生成元素。让我们称之为“蜡烛” 每个“蜡烛”的背景图像和颜色都需要不同的属性,具体取决于它们的索引() 创建页面后,需要通过界面更改这些属性。因此,保存相互独立的“蜡烛”属性非常重要 这就是为什么我认为它可能是有用的,为每个“蜡烛”生成一个对象,以保存其各自的属性并使其可编辑 var candleAmount = 3; for (var i=1; i <= candleAmount; i++) { $("#co

On(document).ready im希望在某个父元素内动态生成元素。让我们称之为“蜡烛”

每个“蜡烛”的背景图像和颜色都需要不同的属性,具体取决于它们的索引()

创建页面后,需要通过界面更改这些属性。因此,保存相互独立的“蜡烛”属性非常重要

这就是为什么我认为它可能是有用的,为每个“蜡烛”生成一个对象,以保存其各自的属性并使其可编辑

    var candleAmount = 3;
for (var i=1; i <= candleAmount; i++) {
    $("#container #candles").append("<li><img src=''></img></li>");
    var Candle+i = [ "background":"+i+", "color":" - random - (ignore)" ]
    };
我希望根据子对象的数量创建一定数量的变量。 正确的语法是什么,或者没有


谢谢

把它们放在一个数组中,然后通过索引访问它们。结果对您来说很可能是相同的,并且比让它们在您的范围内浮动要好得多

那么,有没有办法用索引生成对象名呢

是的,在JavaScript中,全局变量定义为全局对象的属性。(在函数内部,变量定义为激活对象的属性。)您可以通过
窗口
(对于浏览器应用程序)或仅通过
引用全局对象

因为所有对象都是关联的,所以可以为这些属性指定所需的名称。因此,设置全局变量等于将属性设置到全局对象中

var foo = "bar"; === this["foo"] = "bar";
现在,在名称中添加动态部分只是一小步:

for(var i=0;i<10;i++) {
 this['candle' + i] = i;  
}

alert(candle7);

非常感谢。我试图将索引添加到变量名中,但对我无效。我刚刚在我的帖子中添加了一个更简单的例子,也许你可以在那里施展你的魔法?现在的问题是你从函数中分配变量。这使得变量是在激活对象中定义的,但只有在使用var的情况下才可以。我会让您的代码正常工作,这需要解释一下。@请参阅我的更新。如果你喜欢,别忘了标记为答案或投票。
for(var i=0;i<10;i++) {
 this['candle' + i] = i;  
}

alert(candle7);
$("ul#candles li").each( function(i) {
  window["candle" + i] = i+" Anything";
  });

alert(candle4);