Порядок вызова с super и extends в console

Есть пример кода, но не понятно почему в консоле именно такой порядок выведения

bar foo
bar bar
foo bar 

Разве при вызове super не должен вызываться первым console.log('foo', this.id)

 class Foo {
   constructor() {
     this.id = 'foo'
     this.print()
   }

   print() {
     console.log('foo', this.id)
   }
 }

 class Bar extends Foo {
   constructor() {
     super()
     this.id = 'bar'
     this.print()
     super.print()
   }

   print() {
     console.log('bar', this.id)
   }
 }

 new Bar()

Ответы (1 шт):

Автор решения: Alexey Ten

Нет, первым вызывается this.print() в 4 строке. А this в этот момент экземпляр класса Bar, так что вызывается его метод.

→ Ссылка