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 に委譲される。で、継承が実現される。
ちょっとかっこいい。
おお。便利。セマンティックウェブが表現できることなど多数。
最近のコメント