Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    klassypublic

    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.extend({
      init: function(name) {
        this._super();
        this.name = name;
        this.isCelestialObject = true;
      },
      greeting: function() {
        return 'Hello from ' + this.name;
      }
    });
     
    var Planet = CelestialObject.extend({
      init: function(name) {
        this._super.apply(this, arguments);
        this.isPlanet = true;
      },
      greeting: function() {
        return this._super() + '!';
      },
    });
     
    var earth = new Planet('Earth');
     
    console.log(earth instanceof Klass);           // true
    console.log(earth instanceof CelestialObject); // true
    console.log(earth instanceof Planet);          // true
     
    console.log(earth.isCelestialObject);          // true
    console.log(earth.isPlanet);                   // true
     
    console.log(earth.greeting());                 // '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. If mixins are to be included without a SuperClass, pass null 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 into
    • source - One or more source classes

    License

    Copyright 2014-2015 Cerebris Corporation. MIT License (see LICENSE for details).

    Keywords

    none

    install

    npm i klassy

    Downloadsweekly downloads

    13,318

    version

    0.1.3

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar