[JavaScript] 昨日に続きJavaScriptを勉強します、Porototypeチェーンとか(2008/01/25)
昨日に引き続き「Ajax 実践開発入門」を読む。あぁ、これ「入門」だったのか。
2章に戻る。そもそも、機械に理解できることが私に理解できないはずは無い、と、そのぐらい思わないとなぁなぁで流して行けそうなので、そんな気概で取り組む。「2.1.1のJavaScriptはなぜ嫌われるのか」にこう書いてある。
ここは1つ覚悟を決めてJavaScriptを徹底的に学んでしまおうではありませんか。大丈夫、ちゃんと向き合えばきっとJavaScriptは愛するに耐える言語です。
そう、ちゃんと向き合えば良いのだ。そして「2.2.1 オブジェクト指向型言語」には
プロトタイプベースのオブジェクト指向では、クラスも1つのオブジェクトであり、そのプロトタイプと呼ばれる共通領域に処理を定義した上でインスタンスを生成します。
昨日、読んでいなかった部分↑を読んだら、理解が進んだ気がする。そういうことね。
Hoge.prototype.sayHello = function(){};
これは、そのプロトタイプ領域に処理sayHello(関数)を定義しているわけだ。なるほど。
さらに「2.2.2 動的型付けの言語」には、
動的型付けの言語の利点としては、型の宣言が不要なので簡潔にプログラムを記述できます。また、オブジェクトが実行時に同じメソッドを備えてさえいれば、継承関係に縛られずに互いのオブジェクトを交換することができます。
これは便利ね。継承関係に縛られずに交換できるのは、設計に縛られずに自由にできる余地があると理解して良いのだろうか?この辺は後で調べる。★
ざっと読んだところ2章、理解できた。昨日読んで一晩置いたのが良かったのかもしれないが、2章の最初を読み直したのが全体を俯瞰できてよかったと感じる。2章を読んで細かいことがわからなかったら、2章の先頭を読み直すのが良いかもしれない。
プロトタイプは、本書にあるとおり、「共通領域に処理を定義できる」。「プロトタイプは共通領域に処理を定義する。」と10回ぐらい唱えればOK?
インスタンスの作成は、共通領域に定義した処理への参照がコピーされること。これが大事。
コメント