@ncoxall

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

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

Теперь хочу перейти на Классы но не пойму как в них делать подобное вложение... (Root.Pages.Login)
Есть ли подобные примеры?
  • Вопрос задан
  • 1104 просмотра
Решения вопроса 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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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