Как эта функция восстанавливает переменную "I"?
var funcs = []; for (let i = 0; i < 10; i++) { funcs.push(function() { console.log(i); }); } funcs.forEach(function(func) { func(); //How does this function retreive the variable "i"? });
Как функция func(); восстанавливает переменную "i"?
Что я уже пробовал:
Когда выполняется функция func (), возвращается ли код в строку 4, где была создана функция?
Или func() заменяется на "console.log(a number)"?
Или func() буквально заменен на "console.log(i)"?
Thomas Daniels
- Привет! Вчера вы написали еще один комментарий к моему ответу, прося разъяснений, и тогда у меня не было времени ответить на него, но теперь вы, похоже, удалили этот комментарий.
Если вам все еще нужен ответ на ваш вопрос в комментарии, то это будет так:
На самом деле это никак не связано с областью применения. Целое число-это тип значения, поэтому, когда вы пишете "var b = t;", значение "t" копируется в "b", и с этого момента переменные независимы. Но опять же, это не связано с масштабом.