JavaScript · Senior · Frage 25 von 75
Warum ist es wichtig, in einer Debounce-Umsetzung this und die Argumente zu erhalten?
function debounce(fn, ms) {
let t;
return function (...args) {
clearTimeout(t);
t = setTimeout(() => fn.apply(this, args), ms);
};
}- 1Sonst läuft die Funktion synchron, ohne die Verzögerung
ms - 2Sonst verliert die umhüllte Methode Kontext und Aufrufparameter
- 3Sonst lässt sich der vorherige Timer nicht mit
clearTimeoutlöschen
Antwort zeigen
Richtige Antwort: Sonst verliert die umhüllte Methode Kontext und Aufrufparameter
Erklärung
Der Wrapper muss transparent sein: Ein Aufruf von obj.save(data) über Debounce muss fn mit demselben this und denselben Argumenten erreichen. Deshalb liefert man eine normale Funktion (sie hat ihr eigenes this), und im Timer erhält eine Arrow Function es.