赤いきつねの技術メモブログ

主に技術メモを残す予定です。

プロトタイプオブジェクトを利用したメソッド定義

javascriptでガチガチのクラスを作ってはいけない。
なぜならインスタンス全てにそれらの定義がコピーされ、余計なメモリを食うからだ。

ということで、必要なメソッドはprototypeプロパティを使って定義しようという話です。
この場合、各インスタンスはメソッドの実体を持たず暗黙参照のみを持っているためスリムなのです。

var Member = function(firstname,lastname){
	this.firstname = firstname;
	this.lastname = lastname;
};

var member = new Member('tanaka','taro');
Member.prototype.getName = function(){
	return this.firstname + this.lastname;
};
document.writeln(member.getName());

大事なこと:JSはプロトタイプベースのオブジェクト指向
      クラスベースのオブジェクト指向とは異なる考え方が求められる。