【发布时间】:2010-11-12 09:20:43
【问题描述】:
以下代码有效吗?
var i;
var objs={};
for (i=0; i <10; i++)
{
objs.i=new FooObject();
}
alert(objs.4.someMethod());
如果不是,应该如何重写以完成我想要的?
【问题讨论】:
标签: javascript jquery oop
以下代码有效吗?
var i;
var objs={};
for (i=0; i <10; i++)
{
objs.i=new FooObject();
}
alert(objs.4.someMethod());
如果不是,应该如何重写以完成我想要的?
【问题讨论】:
标签: javascript jquery oop
你应该编辑你的代码如下:
var i;
var objs = {};
for (i = 0; i < 10; i++) {
objs[i] = new FooObject();
}
alert(objs[4].someMethod());
【讨论】:
var objs = {}; 替换为var objs = [];。会更干净。
var i;
var objs = new Array();
for(i = 0; i < 10; i++)
{
objs.push(new FooObject());
}
objs[4].someMethod();
【讨论】:
变量名1不能使用数字。如果要通过数值引用项目,请使用数组 2。然后,您可以通过数组中的键访问项目。如果要循环浏览,可以使用for...in 选项3。如果您的键是连续的和连续的,则无关紧要:
var x;
var myItems = new Array();
myItems[0] = "Foo";
myItems[9] = "Bar";
myItems[5] = "Fiz";
for (x in myItems) {
alert(myItems[x]);
}
1http://www.w3schools.com/js/js_variables.asp
2http://www.w3schools.com/js/js_obj_array.asp
3http://www.w3schools.com/js/tryit.asp?filename=tryjs_array_for_in
【讨论】:
您不能将数字用作变量名,因为在 Javascript 中,数字作为它们自己的对象集存在(即,您可以认为 4 已经是一个无法覆盖的全局变量)。
【讨论】: