@ncoxall

Как составить глубокое вложения классов в javascript?

Раньше я писал так: (простой пример)
var Root = {};
Root.Pages = {};
Root.Pages.Home = function(){};
Root.Pages.Reg = function(){};
Root.Pages.Login = function(){};

Теперь хочу перейти на Классы но не пойму как в них делать подобное вложение... (Root.Pages.Login)
Есть ли подобные примеры?
  • Вопрос задан
  • 1006 просмотров
Решения вопроса 2
@sugadu
class Polygon {
  constructor() {
    this.height = 11;
    this.width = 22;
  }
}

var myObj = {};
myObj.Polygon = Polygon;

console.log((new myObj.Polygon).height)
Ответ написан
@Faliah
Не совсем понял в чём вопрос. Если под "глубокое вложение классов" вы подразумеваете то, что функции-конструкторы у вас являются свойствами объектов, вложенных в другие объекты, то у вас ничего не поменяется:
let Root = {};
Root.Child = {};

class MyClass {
  constructor(prop1, prop2) {
    this.prop1 = prop1;
    this.prop2 = prop2;
  }
}

Root.Child.MyClass = MyClass;

var instance = new Root.Child.MyClass('super', 'great');
console.log(instance);


Если же вы имели в виду сильно вложенное наследование RootClass -> ChildClass -> ChildOfChildClass. То хотелось бы от этого предостеречь и дать несколько ссылок на английские ресурсы. Лучше сразу приучаться делать правильно (по-крайней мере так принято):

Yuotube ролик - Composition over inheritance
Prefer composition over inheritance
Common Misconceptions About Inheritance in JavaScript
3 Different Kinds of Prototypal Inheritance: ES6+ ...
The Open Minded Explorer’s Guide to Object Composition
The Two Pillars of JavaScript
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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