function delay(f, ms) {
return function(...args) {
let savedThis = this; // сохраняем this в промежуточную переменную
setTimeout(function() {
f.apply(savedThis, args); // используем её
}, ms);
};
}
почему, если в объявлении функции не сохранять this в промежуточную переменную, а просто использовать this = this от f, то в результате f = delay(f, ms) будет возвращать результат своего вызова без задержки в ms?
что за this мы вообще сохраняем в переменную, почему это не window.this?