У меня есть closure
Код:
for (var i = 0, link; i < 5; i++)
{
link = document.createElement("a");
link.onclick = aaa(i);
document.body.appendChild(link);
}
function aaa(num)
{
return function ()
{
alert(num);
};
} ;
Я недавно прочитал много о закрытии.
Есть ОДНА вещь, которую я не понимаю.
- Когда i == 0, он приходит к aaa с i = 0 и выполняется, возвращая новую функцию, которая должна блокировать значение
0
.
это хорошо. (Я понимаю это до сих пор).
Но что происходит, когда я == 1?
- Это снова приходит к ЖЕ ААА и теперь он должен заблокировать значение
1
.ок
но подождите!он уже сохраняет «замыкание» для значения «0»!
Создает ли эта структура (замыкание) новое пространство в памяти для каждой итерации?
и, если да, то как это можно сделать?быть?у нас только один централизованный aaa
функционал!