簡體   English   中英

值是變量名,而不是變量的內容

[英]Value is the variable name instead of the contents of the variable

我試圖在javascript對象中動態初始化一些數據值,但是當我創建一個要傳遞的串聯字符串時,存儲的實際鍵是變量名,而不是其中的值。

例:

projects.init = function(){
    for (var i = this.numBoxes - 1; i >= 0; i--){
        var toInject = "item"+i;
        this.datas[i] = {toInject:"testdata"};
    };
}

然后在調用init之后,projects.datas內部的值看起來像.. toInject“ testdata”,而不是“ item1” ...“ item2” ....我在做什么錯..?

您應該分兩步構建對象,並使用方括號符號屬性accessor

projects.init = function(){
        for (var i = this.numBoxes - 1; i >= 0; i--){
                var toInject = "item"+i,
                    obj = {};

                obj[toInject] = "testdata";
                this.datas[i] = obj;
        };
}

對象文字上的標簽不能是表達式。

如您所見,首先聲明一個空的對象常量

var obj = {};

然后設置屬性:

obj[toInject] = "testdata";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM