Использование чисел для имен элементов объектов javascript - PullRequest
3 голосов
/ 20 июля 2009

Действителен ли следующий код?

var i;
var objs={};
for (i=0; i <10; i++)
{
   objs.i=new FooObject();
}

alert(objs.4.someMethod());

Если нет, то как его следует переписать, чтобы достичь того, чего я хочу?

Ответы [ 4 ]

4 голосов
/ 20 июля 2009

Вы должны отредактировать ваш код следующим образом:

var i;
var objs = {};
for (i = 0; i < 10; i++) {
  objs[i] = new FooObject();
}

alert(objs[4].someMethod());
2 голосов
/ 20 июля 2009

Вы не можете использовать цифры для имен переменных 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]);
}

1 http://www.w3schools.com/js/js_variables.asp
2 http://www.w3schools.com/js/js_obj_array.asp
3 http://www.w3schools.com/js/tryit.asp?filename=tryjs_array_for_in

2 голосов
/ 20 июля 2009
var i; 
var objs = new Array();

for(i = 0; i < 10; i++)
{
   objs.push(new FooObject());
}


objs[4].someMethod();
1 голос
/ 20 июля 2009

Вы не можете использовать числа в качестве имен переменных, потому что прямые числа существуют как их собственный объект, установленный в Javascript (то есть, вы можете думать о 4 как о глобальной переменной, которую вы не можете переопределить).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...