Какой (из двух приведенных ниже) подход к программированию в actionscript лучше / предпочтителен / работает лучше

#actionscript-3 #coding-style #standards

#actionscript-3 #стиль кодирования #стандарты

Вопрос:

У меня есть приведенный ниже фрагмент кода в моем файле actionscript (определенный в функции)

 var cmbSyncItems:Object = new Object();
cmbSyncItems = {tooltip:xmlContent.messages.cmbsync[0].tooltip, option1label:xmlContent.messages.cmbsync[0].option1[0].label, option1data:xmlContent.messages.cmbsync[0].option1[0].data, option2label:xmlContent.messages.cmbsync[0].option2[0].label, option2data:xmlContent.messages.cmbsync[0].option2[0].data};
cmbSync = new ObjectProxy(cmbSyncItems);

var btnFeedbackItems:Object = new Object();
btnFeedbackItems = {tooltip:xmlContent.messages.btnfeedback[0].tooltip, label:xmlContent.messages.btnfeedback[0].label};
btnFeedback = new ObjectProxy(btnFeedbackItems);
  

Ниже приведен переписанный код, использующий один и тот же объект ‘items’ снова и снова.

 var items:Object = new Object();
items = {tooltip:xmlContent.messages.cmbsync[0].tooltip, option1label:xmlContent.messages.cmbsync[0].option1[0].label, option1data:xmlContent.messages.cmbsync[0].option1[0].data, option2label:xmlContent.messages.cmbsync[0].option2[0].label, option2data:xmlContent.messages.cmbsync[0].option2[0].data};
cmbSync = new ObjectProxy(items);

items = new Object();
items = {tooltip:xmlContent.messages.btnfeedback[0].tooltip, label:xmlContent.messages.btnfeedback[0].label};
btnFeedback = new ObjectProxy(items);
  

Объект items будет повторяться много раз (более сотен) в одном и том же файле.

Какой метод кодирования лучше (первый блок или второй блок)?

Будет ли все в порядке, если я возьму «второй». Имеет ли значение использование первого подхода (с точки зрения потребления памяти)?

Ответ №1:

я бы предпочел предложить третий вариант:

 cmbSync = new ObjectProxy( { tooltip:xmlContent.messages.cmbsync[0].tooltip, 
                             option1label:xmlContent.messages.cmbsync[0].option1[0].label, 
                             option1data:xmlContent.messages.cmbsync[0].option1[0].data, 
                             option2label:xmlContent.messages.cmbsync[0].option2[0].label, 
                             option2data:xmlContent.messages.cmbsync[0].option2[0].data } );
btnFeedback = new ObjectProxy( { tooltip:xmlContent.messages.btnfeedback[0].tooltip, 
                                 label:xmlContent.messages.btnfeedback[0].label } );
  

upd
первый подход, похоже, не требует гораздо больше памяти, если все эти объекты объявлены как локальные переменные, но все эти объявления имхо действительно излишни

Комментарии:

1. 🙂 очень приятно. Ваш ответ — замечательное решение. Нет необходимости иметь дополнительные переменные 🙂 Спасибо