我对Javascript很新,我有一个关于制定变量名称的小问题:
function createObjects(int length) {
var count;
for(count=0; count<length; count++;) {
var personObj + "" + count;
}
}
这里我想为for循环的每次迭代制定一个不同的personObj,这是正确的程序吗?这会给我: var personObj1 var personObj2 等
谢谢! 马特
答案 0 :(得分:1)
别。动态生成变量绝不是一个好主意。请改用对象或数组。它们旨在构建相关数据组。
function createObjects(length) {
var count, people = [];
for(count=0; count<length; count++;) {
people.push('something');
}
return people;
}
答案 1 :(得分:1)
如果你想拥有相同底层数据结构/逻辑的多个实例,你可以使用这样的方法:
创建 constructor function ,生成Object
,其中包含您需要的属性(也包括方法)。例如:
function PersonObj(name, age) {
this.name = name;
this.age = age;
}
这使您可以使用PersonObj
创建var n = new PersonObj('Fred',32);
的新实例。现在,您可以使用 Array 来存储这些对象的多个实例:
var persons = []; // creates a new Array
for (var i = 1; i < 13; i++){
persons.push(new PersonObj('Alfred', i));
}
persons
现在将包含12名1至12岁的阿尔弗雷德。
如果你想改变阿尔弗雷德3号的年龄,你可以这样做:
persons[2].age = 99;
参见 a live demo
答案 2 :(得分:0)
为什么不为此使用数组?
答案 3 :(得分:0)
如果需要,您可以向窗口对象添加命名属性:
function createObjects(int length) {
var count;
for(count=0; count<length; count++;) {
window[personObj + "" + count] = new SomeObject();
}
}
答案 4 :(得分: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);
}