公開日: 2009年01月15日(Thu)
JavaScript のオブジェクト指向はプロトタイプベースというらしいが、これが今ひとつ意味不明で理解不能でいた。
今までいろいろなサイトやら本やらを読んでもピンと来なかったわけだが、今日、オライリーの Head First JavaScript という本の456ページ目の上半分を読んだだけでピンときた。この本はすごい。
ぼくが勘違いしていたのは、プロトタイプはインスタンスに使うものだと思ってたんだけど、そうじゃなくて、クラスに使うんだって。
プロトタイプを使って、Array クラスを拡張してみた例。
<script type="text/javascript">
//Arrayのプロトタイプに
//メソッド ahya() を追加してみた。
Array.prototype.ahya = function(){
alert('ahya');
}
//普通の配列を作る。
//配列はつまり、Arrayクラスのインスタンス。
var $sampleArray = [1,2,3,4,5];
//だとしたら、メソッド ahya() が使えるハズ!
$sampleArray.ahya();
</script>
なるほどぅ、そういう意味だったんですね!納得っ!
心の痞えがひとつ取れました。
既に作られているインスタンスにもまとめてメソッド追加できるのが好いな、プロトタイプとは関係ないけど
おお、てさきさん。長らく放置してすみません。(いま気づいた・・・)
なんとなく仕組みは理解できたと思うんですが、これが「どう便利なのか」が、いまひとつ理解できておりません・・・。まだまだお勉強が必要そうです。
公開日: 2009年01月15日(Thu)