JavaScript · Middle · Pytanie 4 z 75
Co wypisze ten kod po sekundzie?
const timer = {
seconds: 10,
start() {
setTimeout(function () { console.log(this.seconds); }, 1000);
},
};
timer.start();- ✓Poprawna odpowiedź:
undefined: zwykła funkcja callbacku ma własnethis - 2
10: callback dostajethisz metodystart - 3
ReferenceError:thisjest niedostępne wewnątrz timera
Wyjaśnienie
Timer wywołuje callback bez kontekstu, więc this to nie timer. Funkcja strzałkowa () => console.log(this.seconds) wzięłaby this ze start i wypisała 10. To klasyczny przypadek, w którym strzałki się przydają.