Joose является открытым исходным кодом самостоятельного хостинга системы метаобъект для JavaScript с поддержкой классов , наследования , Mixins , черт и аспектно-ориентированного программирования .
Разработчики) | Мальте Убл |
---|---|
Стабильный выпуск | 2.1 / 2 августа 2009 г. |
Написано в | JavaScript |
Тип | Фреймворк веб-приложений |
Лицензия | Новая лицензия BSD |
Веб-сайт | https://code.google.com/p/joose-js/ |
Мета-объектная система Joose является мультипарадигмальной. Он поддерживает стили программирования на основе классов и прототипов, а также наследование на основе классов и расширение на основе ролей. В то время как другие фреймворки JavaScript часто специализируются на доступе к DOM и AJAX , Joose специализируется исключительно на внедрении успешных методов программирования в язык сценариев JavaScript. Таким образом, Joose часто используется вместе с другой структурой DOM / Ajax JavaScript и тестируется с jQuery , YUI , Dojo , ExtJS , Prototype , Mootools и PureMVC .
Joose был сильно вдохновлен Moose , объектной системой для Perl 5, которая сама была вдохновлена объектной системой Perl 6 , но в отличие от Perl и Moose, Joose не поддерживает множественное наследование .
Пример
Два класса написаны на Joose:
Class ( "Point" , { has : { x : { is : "rw" }, y : { is : "rw" } }}, методы : { clear : function () { this . SetX ( 0 ); this . SetY ( 0 ); } } });Class ( "Point3D" , { isa : Point , имеет : { z : { is : "rw" } }, после : { clear : function () { this . SetZ ( 0 ); } } });
Point3D - это подкласс Point. У него есть еще один определенный атрибут и дополнительный код для запуска после запуска метода суперкласса clear (). «Rw» означает, что атрибут доступен для чтения и записи с помощью пары средств доступа get / set, сгенерированных автоматически.