Fonksiyonlara Düzenleyici (Decorator) ekleyiniz.
önem: 4
Tüm fonksiyonların prototiplerini defer(ms)
metodunu ekleyiniz. Bu metod çağrılan fonksiyonu ms
kadar geciktiren bir kapsayıcıdır.
Şu şekilde çalışmalıdır:
function f(a, b) {
alert( a + b );
}
f.defer(1000)(1, 2); // 1 sn sonra 3 görünür.
Argümanların orjinal fonksiyona iletilmesi gerektiğini unutmayın.
Function.prototype.defer = function(ms) {
let f = this;
return function(...args) {
setTimeout(() => f.apply(this, args), ms);
}
};
// kontrol et
function f(a, b) {
alert( a + b );
}
f.defer(1000)(1, 2); // 1 sn sonra 3 görünür