Joose (framework)

Joose is an open-source self-hosting metaobject system for JavaScript with support for classes, inheritance, mixins, traits and aspect-oriented programming.

Joose
Developer(s)Malte Ubl
Stable release
2.1 / August 2, 2009 (2009-08-02)
Written inJavaScript
TypeWeb application framework
LicenseNew BSD License
Websitehttps://code.google.com/p/joose-js/

The Joose meta-object system is multi-paradigm. It supports class-based and prototype-based programming styles as well as class-based inheritance and role-based extension. While other JavaScript frameworks often specialize on DOM-access and AJAX, Joose specializes solely on bringing successful programming techniques to the JavaScript scripting language. Joose is thus often used in conjunction with another DOM/Ajax JavaScript framework and is tested with jQuery, YUI, Dojo, ExtJS, Prototype, Mootools and PureMVC.

Joose was heavily inspired by Moose, the object system for Perl 5 which was itself inspired by the Perl 6 object system, but unlike Perl and Moose, Joose doesn't support multiple inheritance.

Example

Two classes written in Joose:

Class("Point", {
    has: {
        x: {is: "rw"},
        y: {is: "rw"}
    },
    methods: {
        clear: function () {
            this.setX(0);
            this.setY(0);
        }
    }
});

Class("Point3D", {
    isa: Point,
    has: {
        z: {is: "rw"}
    },
    after: {
        clear: function () {
            this.setZ(0);
        }
    }
});

Point3D is a subclass of Point. It has another attribute defined and additional code to run after running the superclass clear() method. The "rw" means the attribute is readable and writable with a pair of get/set accessors generated automatically.

gollark: I wish they would use a sensible connector, like RJ45, and supported power over ethernet charging and data transfer.
gollark: At this point it might actually be cheaper to just get an identical replacement model, since the company making the phone seems to have run into financial troubles recently and thus sell the same phones at dirt-cheap prices.
gollark: Well, I don't know where to get replacement USB-C ports for it, too.
gollark: I think *most* just have it soldered to the mainboard?
gollark: "Modern" being "reasonably recent and in production".

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.