JavaScriptにおけるオブジェクト指向3

JavaScriptにおけるオブジェクト指向3

プロトタイプベースオブジェクト

JavaScriptではインスタンス化後にプロトタイプのメンバを追加することができます。そして、そこで追加したメンバは他のインスタンスでも使用できます。
プロパティの宣言はコンストラクタで、メソッドの宣言はプロトタイプで宣言するとよいでしょう。

インスタンス化後にプロトタイプメンバを追加

/*クラスの定義*/
var Animal = function(na,iro){
	this.name = na;
	this.color = iro;
	this.getName = function(){
		return '名前は' + this.name + 'です。'};
};
/*インスタンス化*/
var dog = new Animal('太郎','白');
/*書き出し*/
document.writeln(dog.getName());
document.writeln('色は' + dog.color + 'です。');
/*インスタンス化後にAnimal.prototypeとしてメンバを追加できる*/
Animal.prototype.getSize = function(){
		return '大きさは不明です'};
document.writeln(dog.getSize());

/*インスタンス化*/
var cat = new Animal('トム','黒');
document.writeln(cat.getName());
document.writeln('色は' + cat.color + 'です。');
/*今度は表示される*/
document.writeln(cat.getSize());

スクリプト実行結果です。