Joose es un código abierto autoalojamiento sistema meta objeto de JavaScript con el apoyo de las clases , herencia , mixins , rasgos y programación orientada a aspectos .
Desarrollador (es) | Malte Ubl |
---|---|
Lanzamiento estable | 2.1 / 2 de agosto de 2009 |
Escrito en | JavaScript |
Tipo | Marco de aplicación web |
Licencia | Nueva licencia BSD |
Sitio web | https://code.google.com/p/joose-js/ |
El sistema de meta-objetos de Joose es multi-paradigma. Admite estilos de programación basados en clases y prototipos, así como herencia basada en clases y extensión basada en roles. Mientras que otros marcos de JavaScript a menudo se especializan en DOM -acceso y AJAX , Joose se especializa únicamente en llevar técnicas de programación exitosas al lenguaje de scripting JavaScript. Por lo tanto, Joose se usa a menudo junto con otro marco de JavaScript DOM / Ajax y se prueba con jQuery , YUI , Dojo , ExtJS , Prototype , Mootools y PureMVC .
Joose se inspiró en gran medida en Moose , el sistema de objetos de Perl 5 que a su vez se inspiró en el sistema de objetos de Perl 6 , pero a diferencia de Perl y Moose, Joose no admite la herencia múltiple .
Ejemplo
Dos clases escritas en Joose:
Class ( "Point" , { has : { x : { is : "rw" }, y : { is : "rw" } }, métodos : { clear : function () { this . SetX ( 0 ); this . SetY ( 0 ); } } });Class ( "Point3D" , { isa : Point , tiene : { z : { is : "rw" } }, después : { clear : function () { this . SetZ ( 0 ); } } });
Point3D es una subclase de Point. Tiene otro atributo definido y código adicional para ejecutar después de ejecutar el método clear () de la superclase. El "rw" significa que el atributo se puede leer y escribir con un par de descriptores de acceso get / set generados automáticamente.