powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / callback с параметром.
4 сообщений из 4, страница 1 из 1
callback с параметром.
    #38794194
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: javascript
1.
2.
3.
4.
5.
6.
7.
var index, _i;

for (index = _i = 0; _i < 10; index = ++_i) {
  setTimeout(function() {
    return log(index);
  }, 1000);
}



этот код вернёт 10 десяток


а этот:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var index, _fn, _i;

_fn = function(index) {
  return setTimeout(function() {
    return log(index);
  }, 1000);
};
for (index = _i = 0; _i < 10; index = ++_i) {
  _fn(index);
}



0,1,2....

Можете пояснить на пальцах как это так случается?
...
Рейтинг: 0 / 0
callback с параметром.
    #38795453
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

В первом фрагменте [[scope]] для функции-аргумента setTimeout одинаковый, во втором - разный.

Подробнее - тут или тут
...
Рейтинг: 0 / 0
callback с параметром.
    #38795500
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
callback с параметром.
    #38795764
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Можете пояснить на пальцах как это так случается?
В первом варинте цикл крутнется мгновенно и переменная index станет равна 10. После этого начнут запускаться setTimeout который и будет выводить это значение...

Во втором случае setTimeout будет запускаться с переденным ему значением...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / callback с параметром.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]