В чем разница между этими массивами? - PullRequest
2 голосов
/ 16 февраля 2012
var foo = {}
var bar = new Array();
var another = [];

Кроме того, можно ли добавить к foo примерно так:

foo['obj'] = new Date();

Ответы [ 5 ]

5 голосов
/ 16 февраля 2012
var foo = {};

foo является литералом объекта.

var bar = new Array();

bar - это массив, инициализированный с помощью конструктора Array.

var another = [];

another является литералом массива. Создание новых массивов с помощью литералов более эффективно, чем с помощью конструктора Array: http://jsperf.com/new-array И его также гораздо проще набирать;) Я бы рекомендовал по возможности использовать литералы массивов.

Кроме того, можно ли добавить в foo так: foo['obj'] = new Date();

Да. Это добавит свойство obj к foo со значением new Date(). Это эквивалент до foo.obj = new Date();.

1 голос
/ 16 февраля 2012

var foo = {}

Это объект, а не массив.

var bar = new Array ();

Это массив , но избегайте ключевого слова new с массивами .

var Другой = [];

Это правильный способ инициализации массива.

Кроме того, можно ли добавить в foo так: foo ['obj'] = new Date ();

В JS нет ассоциативного массива. Вместо этого вы можете сделать:

var foo = {};
var foo['obj'] = new Date();
1 голос
/ 16 февраля 2012

foo - это объект, а не массив.bar и another являются массивами.

если вы дадите foo['obj'] = new Date();, obj станет свойством foo.

0 голосов
/ 16 февраля 2012
var foo = {} is for object referal,
    foo = {myCar: "Saturn", getCar: CarTypes("Honda"), special: Sales}

, в то время как var bar = new Array(); используется для создания нового пустого массива.

Но var another = []; может использоваться для назначения пустым значениям любого массива, а также для создания пустого массива.Я думаю, что на сегодняшний день вы можете использовать как foo[1] = new Date();

0 голосов
/ 16 февраля 2012

бар и другой одинаковы, но:

var foo = {}; 

foo это не массив, а объект

foo['obj'] = new Date(); //same as
foo.obj = new Date();

преимущество f ['obj'] в том, что вы можете использовать недопустимые символы идентификатора, например:

   foo['test-me'] // is valid
   foo.test-me //not valid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...