JavaScriptパターン - JavaScriptの表現力を知る
GW休み中にLUMIX GF2を衝動買いしてしまったtanakaです。あと、すこしでも積ん読を消化できるよう、JavaScriptパターン ―優れたアプリケーションのための作法を写経していました。とてもいい本なので紹介します。なお、私は6章まで読み進めていますので6章までの紹介になります。
1章 はじめに
この章では、パターンとはなにか、JavaScriptのオブジェクト指向について簡単に解説、そして実行環境について説明があります。一番印象的な節は「1.2.2 クラスというものはない」という節です。Java や PHP といったクラスのある言語から先に学んだ私からすると、オブジェクト指向と書いてあるのに、クラスがないってどういうことだろう?と思っていました。5章や6章までよめば、クラスがない、ということがはっきりわかるようになります。
2章 必須パターン
守るべき必須のパターンがならんでいます。たとえば、グローバル変数の使用を最小にすること。有名なJavaScriptライブラリのjQuery はグローバル変数を 2 つしか使いません( window.$ と window.jQuery ) 。グローバル変数は、ページ内で読み込んだすべてのスクリプトで共有されるものなので、使用を少なくする必要があります。その他、var, for, for in, parseIntの使い方の説明、コメントを書くこと、など、いかなるJavaScriptコードにも適用できるパターンが書かれています。
3章 リテラルとコンストラクタ
JavaScriptの基本的(プリミティブ)な型をリテラル(生の値)で書くこと、そしてコンストラクタで作ることについて説明しています。基本的なデータ型をばっちり押さえることができます。
4章 関数
JavaScriptの関数は重要で多目的に使えます。関数そのものを関数呼び出しの引数として渡すことができますし、関数そのものにメンバを追加することができます。この本ではプログラマ同士のコミュニケーションに利用できる用語が多く定義されており、この章でも、無名関数、即時関数といった用語を定義します。
5章 オブジェクト生成のパターン
5.1 名前空間パターン、5.2 依存関係の宣言は実践的に使えるパターンだと思います。その他のパターンも、JavaScriptライブラリ内でよく使われているパターンが多いので、知っておくといいと思います。
6章 コード再利用パターン
この章を読むと、JavaScriptの継承と、prototypeについて深く理解することができます。前半で「クラス」のあるプログラミング言語の「クラス」を模倣する方法を紹介し、後半でプロトタイプを使った方法を紹介します。前半を読み終わっても使う機会はないかもしれませんが、JavaScriptの性質を理解するためになる章でした。この章は、本を黙読するだけだと理解しにくかったので、コードを実際に書き写して実行しました。(他の章も半分以上は書き写しましたけど…この章は特に。)
まとめ
まだすべて読み終わったわけではないので中途半端ですが、JavaScript の関数、プロトタイプについての理解を深めることができました。またJavaScriptのもつ表現力を知ることができました。JavaScriptという言語について深く理解したいならオススメできる1冊です。