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();

となる