1.4.1 • Published 9 years ago
klass v1.4.1
Klass
An expressive, cross platform JavaScript Class provider with a classical interface to prototypal inheritance.
API
creating a Class
var Person = klass(function (name) {
this.name = name
})
.statics({
head: ':)',
feet: '_|_'
})
.methods({
walk: function () {}
})
Subclassing
var SuperHuman = Person.extend(function (name) {
// super class is automagically called
})
.methods({
walk: function() {
this.supr()
this.fly()
},
fly: function() {}
})
new SuperHuman('Zelda').walk()
Object Literal Interface
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
Implement
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()
}
})
}
Environments
Klass is Common JS compliant and provides the Modules 1.1 interface to allow two flavors of development. See the implementations below:
Browser
<script src="path/to/klass.js"></script>
<!-- klass() is exposed to context -->
As a node module
npm install klass
var klass = require('klass')
Ender compatibility
add klass
to your ender compilation
ender add klass
Developers
npm install
make
make test
Keep your edits localized to src/klass.js
LICENSE
MIT
Happy Klassing!
1.4.1
9 years ago
1.4.0
10 years ago
1.3.1
10 years ago
1.3.0
11 years ago
1.2.3
11 years ago
1.2.2
12 years ago
1.2.1
13 years ago
1.2.0
13 years ago
1.1.0
13 years ago
1.0.6
13 years ago
1.0.5
13 years ago
1.0.4
13 years ago
1.0.3
13 years ago
1.0.2
13 years ago
1.0.1
13 years ago
1.0.0
13 years ago
0.0.9
13 years ago
0.0.8
13 years ago
0.0.7
13 years ago
0.0.5
13 years ago
0.0.6
13 years ago
0.0.4
13 years ago
0.0.3
13 years ago
0.0.2
13 years ago
0.0.1
13 years ago