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();

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ą.

Do poczytania

Błąd w pytaniu

JavaScript · Middle · pytanie 4

Sprawdź się

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

Rozwiąż ten test