Я предпочитаю использовать этот шаблон для "пространства имен". На самом деле это не пространство имен, а дерево объектов, но оно выполняет свою работу:
Где-то при запуске приложения вы определяете пространства имен глобально (замените window
на exports
или global
в зависимости от вашей среды.
window.App =
Models: {}
Collections: {}
Views: {}
Затем, когда вы хотите объявить классы, вы можете сделать это:
class App.Models.MyModel
# The class is namespaced in App.Models
А когда вы хотите сослаться на него:
myModel = new App.Models.MyModel()
Если вам не нравится глобальный способ определения пространств имен, вы можете сделать это перед вашим классом:
window.App.Models ?= {} # Create the "namespace" if Models does not already exist.
class App.Models.MyModel