romich
@romich
Frontend разработчик

Как грамотно организовать JS код в ООП стиле разнесенный по файлам?

Не могу до конца понять структуру того, как должен действовать ООП код, чтобы получать доступ к родительским свойствам конструктора. При этом не ясно, где создавать и вызывать объекты.

Допустим у меня есть два класса, это `app` - мой главный класс, `map` - класс с картой, который дочерний класса `app`

Я имею следующий код класса `app`

class App {
    constructor() {
        this.app = document.querySelector('#city');
    }

    init() {

    }
}

const app = new App();

app.init();

export default function () {
    return App;
}


Отсюда я экспортирую весь класс целиком, чтобы получить доступ к его конструктору в другом файле. Код представлен ниже

import App from '../index.js'; //забираю мой класс
class Map extends App {
    constructor() {
        super();
        console.log(this.app); //здесь почему то приходит undefined??
    }
   
   // ... my metods
}


Вопрос в том почему `undefined`? И второй вопрос, где нужно создавать объект от класса `map`. То есть мне нужно эскпортировать класс и в родительском потом создавать объект, и обращаться к методам? или как-то по-другому? При этом нужно учесть что у класса `map` будут тоже подклассы.

Я буду очень благодарен, если кто-то скинет пример. Или хотя бы ссылочку на грамотно организованный код, чтобы посмотреть.
  • Вопрос задан
  • 403 просмотра
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
JS это далеко не Java и ООП в нем такое себе. Посмотрите как это реализовано в фреймворках, вроде Ангуляр у всех на слуху, мне лично EmberJS понравился - у него дельный мануал.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы