2012-04-13 67 views
0

唯一名稱的JavaScript對象我是新足JavaScript和我有關於制定變量名小查詢:創建具有根據計數器環

function createObjects(int length) { 
    var count; 
    for(count=0; count<length; count++;) { 
    var personObj + "" + count; 
    } 
} 

在這裏我要制定各自不同的personObj對象迭代for循環,這是正確的過程?將這個給我: VAR personObj1 VAR personObj2 等

謝謝! Matt

+0

你打算在循環之後用這些對象做什麼?存儲它們?哪裏? – Joseph 2012-04-13 11:35:37

+0

你不能這樣做,你將不得不創建一個數組並將變量存儲在它們中。只是好奇,你是JavaScript的新手想知道是否有其他語言允許我以這種方式創建變量。 – Zaje 2012-04-13 11:37:24

+0

我想爲每個對象創建屬性,然後將它們存儲在一個數組中,我應該爲一個對象定義屬性,然後將每個對象插入數組中的索引,然後重新初始化屬性? – MattTheHack 2012-04-13 11:40:29

回答

1

如果你想擁有同樣的基礎數據結構/邏輯的幾個實例,你可以使用這樣的方法:

創建constructor function生成與屬性(也方法)的Object你需要的。例如:

function PersonObj(name, age) { 
    this.name = name; 
    this.age = age; 
} 

這使您可以通過使用var n = new PersonObj('Fred',32);創造PersonObj一個新的實例。現在你可以使用一個Array存儲多個instancesof這些對象:

var persons = []; // creates a new Array 

for (var i = 1; i < 13; i++){ 
    persons.push(new PersonObj('Alfred', i)); 
} 

persons現在將包含的1歲12個艾爾弗雷德到12

如果你想改變阿爾弗雷德第3號的年齡你可以這樣做:

persons[2].age = 99; 

a live demo

0

爲什麼不用這個數組呢?

1

不要。動態生成變量從來不是一個好主意。改用對象或數組。它們旨在構建相關數據組。

function createObjects(length) { 
    var count, people = []; 
    for(count=0; count<length; count++;) { 
    people.push('something'); 
    } 
    return people; 
} 
0

如果需要,必須,你可以命名屬性alwvays添加到窗口對象:

function createObjects(int length) { 
    var count; 
    for(count=0; count<length; count++;) { 
    window[personObj + "" + count] = new SomeObject(); 
    } 
} 
0

創建對象,添加屬性,對象和對象存儲在數組中。

var al = new Array(); 
function createObjects(int length) { 
var o = new Object(); 
    for(var count=0; count<length; count++;) { 
     o.count = 'some value'; 
    } 
al.push(o); 
}