function f(x) {
console.log(x)
}
function delay(f, ms) {
return function() {
setTimeout( () => {
f.apply(this, arguments)
}, ms )
};
}
let f1000 = delay(f, 1000);
f1000('asd')
function f(x) {
console.log(x)
}
function delay(f, ms) {
return function() {
setTimeout( function() {
f.apply(this, arguments)
}, ms )
};
}
let f1000 = delay(f, 1000);
f1000('asd')
Строчка
f.apply(this, arguments)
находится внутри функции, у которой нет параметров:
setTimeout( function() {
f.apply(this, arguments)
} )
Вызов
f.apply(this, arguments)
находится внутри стрелочной функции,
setTimeout(() => f.apply(this, arguments), ms);
у которой arguments указывает на контейнер параметров той функции, которая содержит стрелочную.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники