Skip to content

findhit/class

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Class test-badge

javascript class framework

Used for fast deploying of classes by inheriting existent ones.

Instalation

npm install findhit-class --save 

Usage

var Class = require('findhit-class');

Features

Extendable

// Class creation by extending Class var MyClass = Class.extend({ initialize: function ( arg1, arg 2 ) { return this || false; }, destroy: function () { return; }, test: function () { return 'test'; }, }); // Extending MyClass to a new Class // Inheriting initialize and destroy function var MyNewClass = MyClass.extend({ test: function () { return 'cool'; }, });

Hookable

// Since we want to inherite initialize, we may also add an hook for this class MyClass.addInitHook(function () { // do something here.. }); // And also for destroying MyClass.addDestroyHook(function () { // do something here.. }); // WARNING: // Hooks also run on parent classes when an instance is constructed!

Associable

// Initialize some vars var Gun = Class.extend(), Bullet = Class.extend(); // Associating them Gun.hasMany( 'Bullets', Bullet ); Bullet.belongsTo( 'Gun', Gun ); // Creating instances var gun = new Gun( 'colt' ), bulletOne = new Bullet( 'alpha' ), bulletStupid = new Bullet( 'whoote' ), bulletKaeda = new Bullet( 'i kill you' ); // We could associate on multiple ways: // From a bullet pov bulletOne.Gun = gun; // gun.Bullets should be now equal to [ bulletOne ]; // From a gun pov gun.Bullets = [ bulletOne, bulletStupid, bulletKaeda ]; gun.setBullets( [ bulletOne, bulletStupid, bulletKaeda ] ); // bulletOne.Gun, bulletStupid.Gun and bulletKaeda.Gun should be now equal to Gun

Optionable

// Initialize some vars var Gun = Class.extend({ options: { silent: false, }, }); var Colt = Gun.extend({ options: { silent: true, color: undefined, model: undefined, }, }); var gun = new Gun(), colt = new Colt(); gun.options; // { silent: false } colt.options; // { silent: true, color: undefined, model: undefined }

Thanks

Huge thanks to Leaflet, John Resig and Dean Edwards.

About

javascript inherited, extendable, associable, hookable and more; class system

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors