Сообщение от Kivi
|
Вопрос не по этой теме, но по примеру из данного раздела раздела "Декораторы" сайта learn.javascript.ru:
01 function doublingDecorator(f) {
02 return function() {
03 return 2*f.apply(this, arguments); // (*)
04 };
05 }
06
07 // Использование:
08
09 function sum(a, b) {
10 return a + b;
11 }
12
13 sum = doublingDecorator(sum);
14
15 alert( sum(1,2) ); // 6
16 alert( sum(2,3) ); // 10
в строке 13 мы записываем в переменную sum результат, и теперь данная переменная не должна указывать на функцию function sum(a, b) {...}
Кто может указать (где на сайте или в книге Флэнагана) этот момент можно понять, можно и самостоятельно объяснить.
|
Она и не указывает на функцию sum - она указывает на новую функцию, которая будет вызывать sum (она находится в переменной "f").
Она сохраняется благодаря замыканию.
Статья, по которой Я понял замыкания ( я перечитал их около 10 штук), находится
на хабре.