创建具有根据计数器环

问题描述:

唯一名称的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

如果你想拥有同样的基础数据结构/逻辑的几个实例,你可以使用这样的方法:

创建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

为什么不用这个数组呢?

不要。动态生成变量从来不是一个好主意。改用对象或数组。它们旨在构建相关数据组。

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

如果需要,必须,你可以命名属性alwvays添加到窗口对象:

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

创建对象,添加属性,对象和对象存储在数组中。

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); 
}