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