Klassy.js
A class system for JavaScript featuring mixins, constructors, and superclass access.
Extracted from Orbit.js.
Usage
Either define your own base class with defineClass
or use the built-in
base class Klass
.
Any classes can be extended via the extend
method.
Klass
A base class that can be extended.
var CelestialObject = Klass; var Planet = CelestialObject; var earth = 'Earth'; console; // trueconsole; // trueconsole; // true console; // trueconsole; // true console; // 'Hello from Earth!'
defineClass
Define a new class with the properties and methods of one or more other classes.
The new class can be based on a SuperClass
, which will be inserted into its
prototype chain.
Furthermore, one or more mixins (object that contain properties and/or methods)
may be specified, which will be applied in order. When a method is replaced
with another method, it will be wrapped in a function that makes the previous
method accessible via this._super
.
defineClass(SuperClass [, mixins, ...])
SuperClass
- A base class to extend. Ifmixins
are to be included without aSuperClass
, passnull
for SuperClass.mixins
- One or more objects that contain properties and methods to apply to the new class.
extendClass
Extend a class with the properties and methods of one or more other classes.
When a method is replaced with another method, it will be wrapped in a
function that makes the replaced method accessible via this._super
.
extendClass(destination [, source, ...])
destination
- The class to merge intosource
- One or more source classes
License
Copyright 2014-2015 Cerebris Corporation. MIT License (see LICENSE for details).