Derse geri dön

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