Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Оптимизация праметров функции (https://javascript.ru/forum/misc/12372-optimizaciya-prametrov-funkcii.html)

sidor 14.10.2010 18:28

Оптимизация праметров функции
 
Здравствуйте, форумчане.
Есть функция:
function showFriends(oFriends, oSort, oFilter) {
   userSearch('', oFriends, oSort, oFilter);
}

Все параметры функции - большие глобальные объекты (генерируются из php).
Получается, что можно записать вот так:
function showFriends() {
   userSearch('', oFriends, oSort, oFilter);
}

В данном случае мы экономим память, так как объекты сохраняться только в [[scope]] userSearch(). Я правильно рассуждаю?

Но , как по мне, код становится менее читабельным, можно запутаться: откуда берется переменная и т.д. Как правильно делать и какой правильный выход из данной ситуации?

Kolyaj 14.10.2010 18:51

Цитата:

Сообщение от sidor
В данном случае мы экономим память

Не экономим. Объекты не копируются, операции производятся со ссылками на объекты.

Sweet 14.10.2010 19:04

Цитата:

Сообщение от sidor
Получается, что можно записать вот так

А если так реально получается (т.е. переменные глобальные), то зачем передавать ссылки на них из функции в функцию? К тому же, это приведет только к ошибкам типа этой:
var variable = 'someValue';
function changeVariable(variable){
  variable = 'anotherValue';
};
function output(variable){
  alert(variable);
};
changeVariable(variable);
output(variable); // 'someValue', а не 'anotherValue'


Часовой пояс GMT +3, время: 13:44.