Показать сообщение отдельно
  #1 (permalink)  
Старый 30.11.2009, 22:32
Интересующийся
Отправить личное сообщение для Dotod Посмотреть профиль Найти все сообщения от Dotod
 
Регистрация: 30.11.2009
Сообщений: 20

Подскажите, как работает простой код (замыкание функции)?
[ js ]
uniqueID = (function() { // Значение сохраняется в объекте вызова функции
var id = 0; // Это частная переменная, сохраняющая свое
// значение между вызовами функции
// Внешняя функция возвращает вложенную функцию, которая имеет доступ
// к этому значению. Эта вложенная функция сохраняется
// в переменной uniqueID выше.
return function() { return id++; }; // Вернуть и увеличить
})(); // Вызов внешней функции после ее определения
[ /js ]

Каким образом в переменную uniqueID попадает 0,1,2,3... при каждом вызове внешней функции (). Не понимаю. Ведь id постоянно обращается в ноль при вызове
Ответить с цитированием