findhit-class

javascript class framework

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
findhit-class
620.1.18 years ago8 years agoMinified + gzip package size for findhit-class in KB

Readme

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.