замыкание формируется, когда мы можем получить этот код, поэтому он не является сборщиком мусора.сказав, что
function outer(){
var name = "ankit";
function inner(){
...
}
return inner
}
Теперь, чтобы сформировать замыкание для вышеупомянутого сценария, мы должны сохранить ссылку на внутреннее, так что контекст выполнения этого конкретного исполнения внешнего не является сборщиком мусора, и у нас есть замыкание.
что-то вроде:
let closure = outer(); // name can be accessed
Теперь я запутался в этом примере для setTimeout
for(var i=0;i<10;i++){
timeer(i)
}
timer(i){
setTimeOut((i) => {console.log(i)}, i*1000);
}
// printts 0 1 2 3 4 5 6 ...
Теперь, как работает вышеприведенный код, я понимаю, что неявное закрытие создано setTimeOut, но мы не храним ссылку на объявление setTimeOut, поэтому область выполнения таймера для конкретного i должна быть мусоромсобрали?Пожалуйста, помогите мне понять этот вариант использования.Среда javascript неявно хранит ссылку setTimeOut?