Skip to content

bnoguchi/class-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

class-js - Simple OO Class factory


Tutorial

To create a new class:

var Class = require('class-js');
var Car = Class.subclass();

You can subclass:

var Lambo = Car.subclass();

To instantiate an object:

var auto = Lambo.init();

You can declare instance methods when you define your subclass:

var Animal = 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 () {
    return this.noise;
  }
});

All instance methods are inherited by subclasses and descendants:

var Tiger = Animal.subclass({
  init: function (name) {
    this._super(name); // this._super is a shortcut to the init method of the superclass (Animal)
    this.noise = "Growl";
  }
});
var cub = 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; // true

You can also access the superclass from the Class or instantiated Class object:

Tiger.superclass === Animal; // true
cub.superclass === Animal; // true

Tests

We use the expresso library for our testing. So, first install expresso:

$ npm install expresso

To run tests:

$ make test

Contributors

License

MIT License


Author

Brian Noguchi

About

Simple OO Class factory

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published