Задать вопрос
ivinnic
@ivinnic
Full-Stack - подустал

Почему при наследовании и вызове конструктура значения свойств приходят от родителя?

Добрый день!

Пример:
class Main {
  type = 'main'
  params = []
  constructor(params){
  	this.params = params
  	this.init()
    //somecode...
  }
  
  init(){
  	console.log(this.type)
  }
}


class Second extends Main{
 	 type  = 'second'
   constructor(params){
      super(params)
   }
}

new Main();
new Second();


// Результат:
// main
// main


Почему при вызове констуктора в класса Second в консоле выводит "main" а не "second".
И как сделать что бы выводило "second"

ps. Предполагаю что контекст запуска init при вывозе из конструктора устанавливается от Main.. но как то это не привычно если сравнивать с тем же php

Понимаю что можно просто сделать так, но хотелось бы глубже разобраться
class Main {
  type = 'main'
  params = []
  constructor(params){
  	this.params = params
  	//somecode...
  }
  
  init(){
  	console.log(this.type)
  }
}


class Second extends Main{
 	 type  = 'second'
   constructor(params){
      super(params)
   }
}

let m = new Main();
let s = new Second();
m.init()
s.init()

// Результат:
// main
// second


За ссылки которые на эту тему буду признателен.

Спасибо!
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы