Что выведет код Junior Прототипы и классы обновлено

Статические поля

Вопрос

Что выведет код? По строке на каждый вывод.

class Counter {
  static total = 0;
  constructor() { Counter.total++; }
}
new Counter(); new Counter();
console.log(Counter.total);
const c = new Counter();
console.log(c.total);
console.log(Counter.total);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 2, undefined, 3. Почему так Статика живёт на самом классе; экземпляр её не видит через this.

Что выведет

2
undefined
3

Разбор

Почему так

Статика живёт на самом классе; экземпляр её не видит через this. Обращаться нужно по имени класса или через this.constructor.

Вывод

2
undefined
3

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.