Какой (из двух приведенных ниже) подход программирования в ActionScript лучше / предпочтительнее / работает лучше - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть фрагмент кода в моем файле 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);

Предметы Object будут повторяться много раз (более сотни) в одном и том же файле.

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

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

1 Ответ

2 голосов
/ 07 ноября 2011

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

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
первый подход, похоже, не потребляет больше памяти, если все эти объекты объявлены как локальные переменные, но все эти объявления действительно ненужны

...