Добрый день!
Пример:
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
За ссылки которые на эту тему буду признателен.
Спасибо!