0.1.1 • Published 10 years ago
root-js v0.1.1
Root.js
Root.js is a framework for prototypal inheritance in JavaScript
Basic Usage
Create a prototype by extending the Root object:
var User = Root.create();
You can add fields by calling the meta-method:
User.
field('firstname').
field('lastname');
You can add other definitions using def:
User.
def('fullname', function () {
return this.firstname() + ' ' + this.lastname();
});
Fields are getter/setters, like jQuery has.
var me = User.create().
firstname('Scato').
lastname('Eggen');
console.log(me.fullname()); // 'Scato Eggen'
Events
Objects can also have events. Again like jQuery, they are methods that are overloaded to either add a listener or trigger the event.
User.
event('login');
var undo = me.login(function (date) {
console.log(date);
});
me.login(new Date()); // Sun Nov 10 2013 14:09:22 GMT+0100 (CET)
The only way to remove a listener is by calling the undo-token that was returned:
undo();
You can also have stand-alone events, which have all kinds of interesting methods:
var numbers = event();
var even = numbers.filter(function (number) {
return number % 2 === 0;
});
even(function (number) {
console.log(number);
});
numbers(1);
numbers(2); // 2
numbers(3);
numbers(4); // 4
TODO
- Add traits: Trait and Root.adopt()
- Add documentation for advanced usage: Root.override(), Root.is(), Root.base and Root.ref()
- Add to npm
- Create client-side version for browsers