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);
}