This package has been deprecated

Author message:

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

clazzy

1.0.0 • Public • Published

Clazzy

Available from NPM Built using Travis

A cross platform JavaScript library that provides a classical interface to prototypal inheritance.

This project is now deprecated in favor of the ECMAScript 6 class syntax, this project will no longer be maintained.

Usage

Clazzy has a single method with this signature:

Function Clazzy.create(Object definition)

It returns a constructor function, with a prototype populated using the provided definition, that you can instantiate using the new keyword.

Creating a class

var Foo = Clazzy.create(
{
    initialize : function ()
    {
        this.foo = 'foo';
    },
 
    bar : function ()
    {
        return 'bar';
    },
 
    baz : function (baz)
    {
        return baz;
    },
 
    static :
    {
        qux : function ()
        {
            return 'qux';
        }
    }
});

Note: Instance properties can be defined in the definition, however their initial value should be set in the constructor.

Creating a class that extends another class

var Bar = Clazzy.create(
{
    extend : Foo,
 
    initialize : function ()
    {
        this.super();
 
        this.corge = 'corge';
    },
 
    baz : function ()
    {
        return 'bar';
    },
 
    baz : function (baz)
    {
        return 'super ' + this.super(baz);
    }
});

Note:

  • Static methods are not inherited.
  • If a method overrides one of its base class methods, you can invoke the overridden method through the use of the super method.

Creating a class that includes another class

Clazzy provides a method of code reuse called includes. Behaving similarly to Ruby's mixins and PHP's traits, they enable a developer to reuse sets of methods freely in several independent classes defined in different class hierarchies.

var Baz = Clazzy.create(
{
    include : [Foo],
 
    moo : function ()
    {
        return 'moo';
    }
});

Note:

  • Static methods are not included.
  • The super method, when invoked from an included method, does not reference the hierarchy of the class it's included in.
  • The precedence order is that an inherited member from a base class is overridden by an included member, which in turn are both overridden by a member from the current class.

Getting started

Clazzy is available through the Node Package Manager (NPM), so you can install it like so:

npm install clazzy

Development

This project doesn't have much of a build process. It does have tests though; which you can run with Grunt like so:

grunt test

This also runs code quality checks using JSHint. Please refer to the .jshintrc file to familiar yourself with the rules.

License

This project is released under the MIT License.

Package Sidebar

Install

npm i clazzy

Weekly Downloads

0

Version

1.0.0

License

MIT

Last publish

Collaborators

  • lsphillips