Помогите написать такую же функцию используя метод bind в setTimeout
есть функция, которая выводит от 0 до 9
function counter() {
for (let i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 10);
}
}
нужно написать такую же используя метод bind в setTimeout
Помогите пожалуйста!!!!
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Например, можно сделать так:
Суть метода bind - прикрепить контекст(окружение) в котором она вызывается.
Почитайте про метод bind
function print() { // Создаем функцию, которая будет выводить свой контекст
console.log(this);
}
function counter() {
for (let i = 0; i < 10; i++) {
// К функции биндим контекст.
// Т.к. метод bind возвращает нам новую функцию,
// ее можно сразу передать в setTimeout
// Или создать переменную
// допустим const newPrint = print.bind(i);
// И уже ее передавать в setTimeout
setTimeout(print.bind(i), 10);
}
}
counter()