2016-05-31 119 views
-2

這裏是什麼我的想法後:用創建動態對象循環

{ 'this id0': function() { 
    console.log(0); 
    }, 

    'this id1': function() { 
    console.log(1); 
    }, 

    ... 
    ... 
} 

我想我會嘗試這樣的:

var foo = {}; 
for (var i = 0, len < 10; i < len; i++) 
    foo['this id'[i]] = function() {console.log([i]}; 

我在正確不明要使用的語法。使用方括號訪問時

+1

''這個id'[i]'''這個id'+ i' –

回答

1

鍵是字符串,所以你需要連接'this id'i

var foo = {}; 
for (var i = 0; i< 10; i++) { 
    foo['this id' + i] = function() { console.log(i); }; 
} 

foo['this id4'](); // logs 10 
+0

上面'console.log(foo ['this id4']())'logs * undefined * –

+0

已修復。它實際上記錄了'10'和'undefined'。 – Jieter

+0

Firefox仍然會記錄* undefined *,而Chrome會記錄* 10 *和* undefined * –

1

對象的屬性必須是有效的字符串:

foo['this id' + String(i)] 

這將添加循環

+0

連接會自動轉換爲字符串。鑄造沒有必要 –

+0

是的,這是真的,但最好是將其強制轉換爲字符串! – aliasav