脳ざらし紀行


2004-03-21

_ [ネット] プロトタイプベース

JavaScriptを勉強しても、Rubyなどのオブジェクト指向言語と何が違うのか良く分からなかった。JavaScriptにはクラスがない?ああそういえばクラスなんてものがありましたね。忘れていました。

JavaScript 風に Ruby を書くRubyでSelf環境の実現をプロトタイプベース・オブジェクト指向スレ

Effective JavaScript 3.2 コンストラクタとプロトタイプ

つまり

var p = new Person();

で p.hoge() というメソッド呼出しは全て、 Person.prototype に委譲される。だから Person クラスにメソッド定義するには、

Person.prototype.hoge = function() {
};

とする。継承は、

Programmer.prototype = new Person();

となる。ちょっとわかりにくい。要するに、

var q = new Programmer();

で、 q.hoge() は Programmer.prototype に委譲されて、 Programmer.prototype は new Programmer() だから、結局は Person.prototype に委譲される。で、継承が実現される。

ちょっとかっこいい。

お名前:
E-mail:
コメント:
本日のリンク元

最近のコメント

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|04|05|
2011|04|
2012|03|07|
2013|01|02|07|
トップ «前の日記(2004-03-20) 最新 次の日記(2004-03-22)» 編集