Answer
t.me/js_testОтвет:
return
Объяснение:
Из подобной задачи, вы уже знаете, причина подобного результата заключается в том, что функция setTimeout создаёт функцию (замыкание), у которой есть доступ к внешней по отношению к ней области видимости, представленной в данном случае циклом, в котором объявляется и используется переменная i.
Теперь в функцию внутри setTimeout
передается атрибут i_local
и возвращается новая функция благодаря return
, у которой есть доступ к переменной i_local.
Код для проверки:
const arr = [10, 12, 15, 21]; for (var i = 0; i < arr.length; i++) { setTimeout(function(i_local) { return function() { console.log('The index of this number is: ' + i_local); } }(i), 3000); }