内容紹介
JavaScriptにおいてオブジェクト指向プログラミングを行う際の原則と考え方について記した書籍!
本書はJavaScriptにおいてオブジェクト指向プログラミングを行う際の原則と考え方、慣例やパターンについて記した書籍です。JavaScriptの持つオブジェクト指向的な言語の特性を紹介し、その特性を活かすプログラミングの方法について解説します。JavaScriptプログラマがオブジェクト指向プログラミングを習得することと、C++やJavaなどの「クラスベースのオブジェクト指向プログラマ」を、クラスを持たないJavaScriptのオブジェクト指向プログラミングの世界に導きます。ECMAScript 5で記述。
このような方におすすめ
フロントエンドアプリケーションエンジニア(初級~中級)
他言語のベテランプログラマ(JavaScriptが必要になった人たち)
目次
詳細目次
まえがき
訳者まえがき
はじめに
ECMAScript 5について
1章 プリミティブ型と参照型
1.1 データ型とは何か?
1.2 プリミティブ型
1.2.1 プリミティブ型のデータ型を判定する
1.2.2 プリミティブ型のメソッド
1.3 参照型
1.3.1 オブジェクトの生成
1.3.2 オブジェクト参照の解除
1.3.3 プロパティの追加と削除
1.4 ビルトインのデータ型をインスタンス化
1.4.1 リテラル
1.4.2 関数リテラル
1.4.3 正規表現リテラル
1.5 プロパティへのアクセス
1.6 参照型のデータ型を判定する
1.7 配列の判定
1.8 プリミティブラッパー型
1.9 まとめ
2章 関数
2.1 関数宣言vs関数式
2.2 値としての関数
2.3 パラメータ
2.4 オーバーロード
2.5 オブジェクトメソッド
2.5.1 thisオブジェクト
2.5.2 thisの値を操作する
2.6 まとめ
3章 オブジェクト
3.1 プロパティの定義
3.2 プロパティの存在確認
3.3 プロパティの削除
3.4 列挙
3.5 データプロパティとアクセサプロパティ
3.6 プロパティの属性
3.6.1 共通属性([[Enumerable]]と[[Configurable]])
3.6.2 データプロパティの属性([[Value]]と[[Writable]])
3.6.3 アクセサプロパティの属性([[Get]]と[[Set]])
3.6.4 複数のプロパティを一度に定義
3.6.5 プロパティ属性を取得
3.7 オブジェクトの変更防止
3.7.1 拡張防止
3.7.2 シール
3.7.3 フリーズ
3.8 まとめ
4章 コンストラクタとプロトタイプ
4.1 コンストラクタ
4.2 プロトタイプ
4.2.1 [[Prototype]]プロパティ
4.2.2 コンストラクタと一緒にプロトタイプを使用する
4.2.3 プロトタイプを変更
4.2.4 ビルトインオブジェクトのプロトタイプ
4.3 まとめ
5章 継承
5.1 プロトタイプチェーンとObject.prototype
5.1.1 Object.prototypeから継承するメソッド
5.1.2 Object.prototypeを変更するということ
5.2 オブジェクト継承
5.2.1 白紙オブジェクト
5.3 コンストラクタ継承
5.4 コンストラクタの借用
5.5 スーパータイプのメソッドにアクセス
5.6 まとめ
6章 オブジェクトのパターン
6.1 プライベートメンバと特権メンバ
6.1.1 モジュールパターン
6.1.2 コンストラクタのプライベートメンバ変数
6.2 Mixin
6.2.1 アクセサプロパティのMixinは要注意
6.3 スコープセーフなコンストラクタ
6.4 まとめ
付録A Strictモード
A.1 Strictモードを有効にする
A.2 Strictモードの動作と制限
A.2.1 グローバルオブジェクトへの暗黙的なプロパティ追加の禁止(var忘れ防止)
A.2.2 thisの暗黙的な変換が発生しない
A.2.3 暗黙的な操作失敗がエラーに
A.2.4 argumentsに関する変更と制限
A.2.5 8進数リテラルの禁止
A.2.6 evalコードが独自のスコープで動作
A.2.7 ブロック内の関数文の禁止
A.2.8 withの禁止
索引
続きを見る