Удобный синтаксис для OOP в JavaScript

Хабы: Веб-разработка, JavaScript

Несмотря на то, что в JavaScript нет встроенной работы с классами или пространствами имен, для JavaScript есть разные библиотекеи, восполняющие эти проблелы, позволяющие писать в таком стиле:

var MyClass = new Class({
    myMethod: function() { }
});

var MyNamespace = {
    myFunction : function() { return 10; }
}

MyNamespace.myFunction();

Однако такой подход имеет ряд недостатков:
  • Невозможно «ссылаться» на элемент тогоже уровня, например при наследовании классов в одном пакете, т.к. инициализация «пакетного» объекта во время конструирования класса еще не произошла и класс, от которого хочется отнаследоваться, недоступен
  • Неудобно описывать «приватные» функции и переменные — их приходится выносить за объявление пространства имен/класса, что затрудняет чтение кода

Для того, чтобы побороть оба этих недостатка, я построил библиотеку-обертку вокруг MooTools, реализующую маленький «встраевыемый язык» для описания классов/пространств имен следующим образом:
Читать дальше →

Полный текст статьи читайте на Habrahabr.ru