При создании объекта, применяется свойства родителя в конструкторе, а не вызванного класса.
Разве так и должно быть? Как тогда перекрыть свойства не создавая конструктор?
class Element {
_collectionName = null;
constructor () {
console.log(this._collectionName);
}
}
class Users extends Element {
_collectionName = 'users';
}
const users = new Users();
/* console.log - null */
Александр Панасин, отсутствующий constructor значит constructor () { super() }
а super() значит вызвать родительский конструктор (функцию) и унаследоваться от того, что он вернёт
class Test {}
class Element {
constructor () {
return new Test();
}
}
class Users extends Element {}
const users = new Users();
console.dir(users.__proto__) // Test {}
Я хочу обойти вызов конструктора в дочернем классе. По идее класс Users должен унаследовать конструктор родителя, что он и делает, но свойства почему то использует родительские.