今日githubのdashboard見てたらtwitterが簡素なクラスライブラリを提供してた。
twitter/dove - GitHubたいした物ではないが、ORMを意識したシステムにも使えるんじゃないかと思った。 まずはdove.htmlからsubとextend
Simple OO helpers for JavaScript
https://github.com/twitter/dove
var User = Dove.Class.sub({
prop: 'Alex',
init: function(name){
this.name = name;
}
});
var Person = User.sub();
var ORM = {};
Person.extend(ORM);
var person = new Person('Alex');
console.log(person.name);
ちょっとpropとnameのどちらかがtypo臭いけど。次にinclude
var Animal = Dove.Class.sub({ kind: 'Animal' });
var Human = Dove.Class.sub();
var animal = new Animal();
Human.include(animal);
var human = new Human();
console.log(human.kind);
そしてproxy
var Drunker = Dove.Class.sub({ drink: function(month) {
return month + "は正月ーで酒が飲めるぞー!酒が飲める飲めるぞ!酒が飲めるぞ!";
}});
var drunker = new Drunker();
[1,2,3,4,5,6,7,8,9,10,11,12].map(drunker.proxy(function(e) {
console.log(this.drink(e));
}));
と、一般的なOOに必要そうな物がちっちゃくまとまってる感じ。ライセンスも何も明記されてないので商用利用していいかは知らない。