Плохо понятен код, а именно как работает метод apply
Function.prototype.defer = function(delay){
var f = this;
return function (second, brackets){
var args = arguments;
var context = this;
setTimeout( function(){
f.apply(context, args);
}, delay );
};
};
function f1(a, b) {
console.log( a + b );
}
f1.defer(2500)(3, 2); // Output 3 after 1 second
Создается метод в прототипе функции выполняющий вызов функции выполняющую возврат суммы аргументов с задержкой.
- Во внешней функции запоминается функция в контексте которой выполняется appy
2; Возвращается внутренняя функция - запомнили контекст и псевдомассив аргументов
3 Устанавливается задержка выполнения функции
4 Выполняется метод apply для функции f1 через переменную f, в параметры apply передаются аргументами контекст this и псевдомассив аргументов из внутренней замыкающейся функции
5 метод apply выполняет неведомую хрень _о_/
6 получается результат
Кто понимает объясните как работает apply.
Как я понимаю выполняет функцию f с аргументами переданными в параметре apply в контексте context
Если это верно, то что такое “в контексте context”?
Спасибо