To create a new class:
varClass=require('class-js');varCar=Class.subclass();You can subclass:
varLambo=Car.subclass();To instantiate an object:
varauto=Lambo.init();You can declare instance methods when you define your subclass:
varAnimal=Class.subclass({init: function(name){this.name=name;},introduce: function(){return"My name is "+this.name;}});init is a special instance method that is invoked whenever you instantiate an object via Class.init(...).
You can add instance methods later on after you have defined your subclass:
Animal.proto({speak: function(){returnthis.noise;}});All instance methods are inherited by subclasses and descendants:
varTiger=Animal.subclass({init: function(name){this._super(name);// this._super is a shortcut to the init method of the superclass (Animal)this.noise="Growl";}});varcub=Tiger.init("Tony");cub.speak();// => "Growl"You can define class methods via:
Animal.aClassMethod=function(){return"hola";};Class methods are also inherited.
Tiger.aClassMethod();// => "hola"You can access the class of an object:
cub.klass===Tiger;// trueYou can also access the superclass from the Class or instantiated Class object:
Tiger.superclass===Animal;// truecub.superclass===Animal;// trueWe use the expresso library for our testing. So, first install expresso:
$ npm install expresso
To run tests:
$ make test
MIT License
Brian Noguchi