JavaScriptパターン : 優れたアプリケーションのための作法

キーフレーズ

function コンストラクタ JavaScript オプジェクト var () return this 関数 name prototype メソッド パターン プロバティ new console コード バターン document script typeof プラウザ コールバック true undefined MYAPP グローバル変数 log 作成 プロトタイプ 使っ callback 必要 即時関数 type Gadget オブジェクト 使う Universe for 追加 プライベート 実装 Object parent 変数 modules alert モジュール 名前空間 arguments http:// 場合 クラス DOM 文字列 object イベント アンチパターン length ECMAScript 実行 継承 定義 constructor subscribers getName say 初期化 インスタンス false call add 呼び出し String プロキシ スクリプト kid ドキュメント グローバル JSON リテラル パラメータ アクセス getPrice apply 配列 JSLint result src 処理 html method Array price サンドボックス ページ value paper API

目次

目 / 欠 6.8 6.9 6.10 6.11 6.12 6.13 Klass プロトタイプによる継承 6.9.1 解説 6.92 ECMAScript 5 に追加されたもの・ プロバティのコピーによる継承 ックスイン メソッドを拝借する 6.12.1 例 : 配列から拝借 6.122 拝借と東縛・ 6.12.3 Function. prototype. bind() ・ まとめ 7 章 デザインバターン 7.1 72 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 シングルトン 7.72 キャッシュとしてのプロキシ 7.7.1 事例 プロキシ フアサード 7.5.1 データ検証の例 ストラテジー 7.4.3 リストを使った実装 7.4.2 実装 7.4.1 使い方 デコレータ イテレータ 72.1 組み込みのオプジェクトファクトリ ファクトリ 7.1.3 クロージャーにインスタンスをキャッシュする 7.1.2 静的プロバティにインスタンスをキャッシュする 7.1.1 new を使ってシングルトンを作る まとめ 7.9.1 例その 1 : 雑誌の購読 オブザーバ 7.8.1 メディエータの例 メディエータ 7.92 例その 2 : キープレスゲーム XV 132 ・ 135 ・ 136 ・ 137 ・ 138 ・ 140 ・ 141 ・ 142 ・ 142 ・ 144 ・ 145 ・ 147 ・ 147 ・ 186 183 ・ 179 ・ 179 ・ 176 ・ 174 ・ 174 ・ 168 167 ・ 165 ・ 163 ・ 162 ・ 161 ・ 158 ・ 158 ・ 157 ・ 155 ・ 155 ・ 153 ・・ 150 ・ 149 ・ 148

5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 プライベートメンバ 特権メソッド プライバシーの侵犯 オプジェクトリテラルとプライバシー プロトタイプとプライバシー プライベート関数をパプリックメソッドとして開示する 6 章 5.4 5.5 5.6 5.7 5.8 5.9 5.10 6.1 62 6.3 6.4 6.5 6.6 6.7 モジュールノヾターン 5.4.1 5.4.2 5.4.3 5.5.1 5.5.2 5.5.3 モジュールノヾターンの開示 コンストラクタを作成するモジュール グローバル変数をモジュールに取り込む サンドボックスパターン グローバルコンストラクタ モジュールの追加 コンストラクタの実装 静的メンバ 5.6.1 パプリックな静的メンバ 5.62 プライベートな静的メンバ オプジェクト定数 連鎖パターン 5.8.1 連鎖パターンの利点と欠点 method() メソッド まとめ コード再利用パターン クラシカルとモダンの継承パターン対決 クラシカルな継承を使ったとき期待される結果 クラシカルなパターンその 1 : デフォルトパター 6.3.1 プロトタイブ連鎖をたどる 6.32 パターンその 1 を使うときの欠点 ン クラシカルなパターンその 2 : コンストラクタ拝借 6.4.1 プロトタイブ連鎖 6.42 コンストラクタを拝借して多重継承 6.4.3 コンストラクタ拝借パターンの利点と欠点 クラシカルなパターンその 3 : プロトタイプを拝借して設定する クラシカルなパターンその 4 : プロトタイプを共有する・ クラシカルなパターンその 5 : 一時的コンストラクタ 6.7.1 スーパークラスを格納する 6.7.2 コンストラクタのポインタを再設定する 95 ・ 95 95 97 ・ 98 99 ・ 100 ・ 131 131 ・ 129 ・ 128 ・ 127 ・ 127 ・ 126 ・ 125 ・ 124 ・ 123 ・・ 121 ・ 121 ・ 120 119 ・ 119 ・ 118 ・ 116 ・ 116 ・ 115 113 ・ 111 ・ 109 ・ 109 ・ 107 ・ 107 ・ 105 ・・ 104 ・ 104 ・ 103 ・ 102

XIII 目次 3.7 プリミテイプのラッパー 3.8 工ラーオプジェクト 3.9 まとめ 4 章関数 4.1 背景 4.1.1 用語の整理・ 4.12 宣言と式 : 名前と巻き上げ 4.1.3 関数の name プロバティ 4.1.4 関数の巻き上げ 4.2 コールノヾックパターン 4.2.1 コールバックの例 4.2.2 コールバックとスコープ・ 42.3 非同期イベントリスナ 4.2.4 タイムアウト 4.2.5 ライプラリで使うコールバック 4.3 関数を返す 4.4 自己定義関数 4.5 即時関数 4.5.1 即時関数のパラメータ 4.52 即時関数からの戻り値 4.5.3 利点と使い方 4.6 即時オプジェクト初期化 4.7 初期化時分岐 4.8 関数プロバティによるメモ化パターン 4.9 設定オプジェクト 4.10 カリー化 4.10.1 関数の適用 4.10.2 部分適用 4.10.3 カリー化 4.10.4 いつカリー化を使うべきか 4.11 まとめ 5 章オブジェクト作成のバターン 5.1 名前空間パターン 5.1.1 汎用の名前空間関数 5.2 依存関係の宣言 5.3 プライベートなプロバティとメソッド 9 、 -0 一 11 ワ」 -4 「 / 8 一 -9 。 -9 、 -9 」 -0- ワ 3 っ 0 -4 一 0 、 6- 「 / -9 」、 1 ワ 3 ワ 3 っ 0 4 「 / 「 /