2014-06-20 11 views
0

В функции JS я буду использовать объект resultModel с двумя свойствами idArray и nameArray. Что было бы правильным способом объявить это?Должны ли объявляться свойства объекта в javascript?

В настоящее время я объявить объект с var resultModel вместе с другими переменными в верхней части функции, но свойства я просто начать использовать путем присвоения им значения в цикле позже в функции:

 
    resultModel.idArray.push(someValue[i][0]); 
    resultModel.nameArray.push(someValue[i][1]); 

Из Конечно, я знаю, что ключевое слово var важно для определения области видимости, а так как «root» идентификатор объявлен в функции, я избегаю любого глобального вмешательства, и все это хорошо. Но у меня есть ожидание того, что свойства значения действительно также должны быть объявлены каким-то образом, по другим причинам, а не по определению - распределение памяти зависит от вас, возможно, набирать намеки через комментарии JSDoc, читаемость и полную полноту объявления.

Итак, мой вопрос: следует ли объявлять такие свойства, и что в этом случае будет правильным способом?

ответ

1

Как это:

var resultModel = { 
    idArray: [], 
    nameArray: [] 
}; 

Назначение значительно медленнее, чем просто положить свойства на объекте в первую очередь, так это лучший способ пойти.

+0

'idArray: [], nameArray: []' – Abhitalks

+0

Вау, вы быстро :-). Причина, по которой я не делаю этого во время объявления, состоит в том, что массив заполняется в цикле. Боюсь, что объявление переменной в цикле вызовет больше, чем несколько аварийных сигналов. Спасибо, в любом случае! (Я отредаю свой вопрос по этому поводу). – norwebian

+0

+1 для редактирования – Abhitalks

0

Поместите свойство в качестве значения по умолчанию для одного типа данных .eg для массива -> Array(), для целых чисел: 0 или -1 и т.д.:

var resultModel = { "idArray": DEFAULT_VALUE , "nameArray" : DEFAULT_VALUE } 
1

Объекты В JavaScript выделяются памяти динамически, как в связанном списке, поэтому я не думаю, что мы должны заботиться о распределении памяти здесь. Для лучшей читаемости вы можете инициализировать их с нулевым значением, например abhitalks.