An expressive, cross platform JavaScript Class provider with a slick, classical interface to prototypal inheritance.
var Person = klass(function (name) {
this.name = name;
})
.statics({
head: ':)',
feet: '_|_'
})
.methods({
walk: function () {}
});
var SuperHuman = Person.extend(function (name) {
// super class is automagically called
})
.methods({
walk: function() {
this.supr();
this.fly();
},
fly: function() {}
});
new SuperHuman('Zelda').walk()
because sometimes you want to use little curlies ;)
var Foo = klass({
foo: 0,
initialize: function() {
this.foo = 1;
},
getFoo: function () {
return this.foo;
},
setFoo: function (x) {
this.foo = x;
return this.getFoo();
}
});
note: initialize will be called on class invocation
because sometimes you want to overwrite OR mixin an instance method
// note you can optionally pass an object literal to extend too ;)
var Alien = SuperHuman.extend({
beam: function() {
this.supr();
// beam into space
}
});
var Spazoid = new Alien('Zoopo');
if (beamIsDown) {
Spazoid.implement({
beam: function() {
this.supr();
// fallback to jets
this.jets();
}
});
}
Klass is Common JS compliant and provides the Modules 1.1 interface to allow two flavors of development. See the implementations below:
<script src="path/to/klass.js"></script>
<!-- klass() is exposed to context -->
<script type="text/javascript">
var Foo = klass(fn1);
var Bar = Foo.extend(fn2);
Bar.implement({ ... });
</script>
// your-application.js
var klass = require('path/to/klass');
var Foo = klass(...);
If you want to see shiny passing tests, run the tests make command
% make tests
By far the easiest way to get started with klass is to simply install the package and hit the ground running!!
% npm install klass
// in your Node application
var klass = require('klass')
- Dustin Diaz
- Jacob Thornton
- Follow our Software @dedfat