Что там в классах JavaScript идет своим чередом?

Частенько можно затупить на порядке операций, например… На задачке с собеседования.

Можно смотреть какие-то ролики, а можно просто посидеть пару часиков над спекой и поэкспериментировать.

Вот как работают классы в JavaScript: при объявлении класса статика срабатывает мгновенно. При создании экземпляра порядок такой: создали объект, запустили начало конструктора, инициализировали поля экземпляра, доделали конструктор. При наследовании родитель идет первым - super() выполняется полностью, потом инициализируются поля дочернего класса, и только потом завершается дочерний конструктор. Приватные поля живут в своей изоляции - дочерний класс не может получить доступ к приватным полям родителя, даже если они называются одинаково.

Лучший способ это понять - экспериментировать с console.log в разных местах класса и смотреть порядок вывода. Результат: знаешь алгоритм, а не магию 🕵🏻‍♂️ #javascript #class