prototype.jsのソースコードをば。。
- 周回遅れを取り戻すべく読み始める。
prototype.jsを使ったクラス
var Animal = function(name){ this.name = name; } Animal.prototype = { sayName : function(){ alert(this.name); } } var dog = new Animal('Taro'); dog.sayName();
- 一般的なクラスを作成すると上記のようになる。これをprototype.jsを使って書くと以下のようになる
var Animal = Class.create(); Animal.prototype = { initialize : function(name){ this.name = name; }, sayName : function(){ alert(this.name); } } var dog = new Animal('Taro'); dog.sayName();
Animalの中には
function klass() { this.initialize.apply(this, arguments); }
が入っており、普通に
var Animal = function(name){ this.name = name; }
をやっているのと同じことになる。prototype.jsから部分抜粋して書けば
var Class = { create : function(){ function klass(){ this.initialize.apply(this, arguments); } return klass; } } var Animal = Class.create(); Animal.prototype = { initialize : function(name){ this.name = name; }, sayName : function(){ alert(this.name); } } var dog = new Animal('Taro'); dog.sayName();
となる