Показать сообщение отдельно
  #18 (permalink)  
Старый 01.09.2012, 21:37
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Javascript просто выполняется потоком по порядку, потому не надо ни о каких сложностях париться, как написано так и сработает.)
(исключая некоторые заморочки с var, setTimeout - но это отдельная тема)

Цитата:
а к функции описанной
09	function sum(a, b) {
10	  return a + b;

обращений производиться уже не будет никогда.
sum - это ссылка на функцию(вообще все объекты в js передаются только по ссылке, а функция тоже объект, да), соотвественно при исполнении
doublingDecorator(sum)
- в функцию doublingDecorator передаётся ссылка на функцию
function sum(a, b) {
	  return a + b;
}
и внутренняя переменная f тоже становится ссылкой на оную. После чего действием
sum = doublingDecorator(sum)
, sum становится ссылкой уже на новую функцию (temp) созданную внутри doublingDecorator, при этом ссылка на оригинальную всё ещё остаётся во внутренней переменной f.
__________________
29375, 35

Последний раз редактировалось Aetae, 01.09.2012 в 21:46.
Ответить с цитированием