JavaScript · Senior · Pytanie 25 z 75

Dlaczego w implementacji debounce ważne jest zachowanie this i argumentów?

function debounce(fn, ms) {
  let t;
  return function (...args) {
    clearTimeout(t);
    t = setTimeout(() => fn.apply(this, args), ms);
  };
}

Wyjaśnienie

Opakowanie musi być przezroczyste: wywołanie obj.save(data) przez debounce musi dotrzeć do fn z tym samym this i argumentami. Dlatego zwracana jest zwykła funkcja (ma własne this), a wewnątrz timera strzałka je zachowuje.

Do poczytania

Błąd w pytaniu

JavaScript · Senior · pytanie 25

Sprawdź się

Rozwiąż test JavaScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test