「オブジェクト指向 JavaScript の原則」という本を読んだ。

本書はJavaScriptが持つオブジェクト指向的な言語特性や、その特性を強力にサポートするECMAScript 5の機能を紹介し、それらの特性や機能を活かすプログラミングの方法、考え方、パターンについて、深くそして簡潔に解説する書籍です。本書を通じて、C++やJavaなど「クラスベースのオブジェクト指向言語」に慣れたプログラマはJavaScript特有のクラスを持たないオブジェクト指向プログラミングの世界への知識を得ることができ、JavaScriptプログラマはJavaScriptのオブジェクトに関する理解をさらに深めることができるでしょう。JavaScriptのオブジェクトを自由自在に扱い、より効果的なプログラミングを行いたいすべてのプログラマ必携の一冊です。

O'Reilly Japan - オブジェクト指向JavaScriptの原則

A5サイズなので技術書にしては小型本だし、200ページしかないのですらすら読める。

自分なりに興味のあるところをピックアップしていく。

この本では、 ECMAScript 5 で Object に追加されたメソッドのほぼ全てを、サンプルコードで使用している。

オブジェクト指向 JavaScript の原則
nilog: ECMAScript 5 についてのオライリー本を読み始め。 ECMAScript 5 で Object に追加されたメソッドのほぼ全てを、サンプルコードで使用しているとのこと。 (2015-04-10)

ECMAScript 5 対応環境について。IE 8以前のPC環境だけがつらい状況。スマホやNode.jsでは問題なし。

オブジェクト指向 JavaScript の原則
nilog: ECMAScript 5 対応環境。IE 8以前のPC環境だけがつらい状況。スマホやNode.jsでは問題なし。しかしそのIE8というのが、まだまだ大きい存在。。 (2015-04-10)

typeof null は "object" が返される Σ(゚Д゚)

オブジェクト指向 JavaScript の原則

関数に渡された引数は arguments オブジェクトにセットされる。配列に似てるけどちょっとちがう。

オブジェクト指向 JavaScript の原則

apply と call のちがいは引数の指定方法がちがうだけ。列挙で渡すか配列で渡すか。

オブジェクト指向 JavaScript の原則

オブジェクトに設定されているプロパティを列挙する方法あれこれ。in, hasOwnProperty, for-in, Object#keys, Object#getOwnPropertyNames を使う。継承されているプロパティも走査できるかどうかなど機能がちがう。

オブジェクト指向 JavaScript の原則

prototype を丸ごと上書きするときは constructor プロパティを再設定する。でもこれ将来 JavaScript の仕様が変わって constructor 以外のプロパティも再設定しなくちゃいけなくなったりしないのかな (まあないんだろうけど)。

オブジェクト指向 JavaScript の原則

Object#valueOf メソッド。

オブジェクト指向 JavaScript の原則

演算時に valueOf メソッドがプリミティブ型の値を返さない場合には Object#toString メソッドが呼ばれる。このへんもしかして落とし穴なんじゃ。。

オブジェクト指向 JavaScript の原則

コンストラクタ継承。constructor プロパティ。

オブジェクト指向 JavaScript の原則

継承元のオブジェクト (いわゆる親クラス的な) のコンストラクタを借用。 Hoge.call(this, hogehoge); みたいな。

オブジェクト指向 JavaScript の原則

継承元のオブジェクト (スーパータイプって呼ぶのか) のメソッドを呼び出すには Hoge.prototype.hogehoge.call(this) で。

オブジェクト指向 JavaScript の原則

JavaScript でオブジェクト指向的に書くときは参考になりそう。

本書はJavaScriptが持つオブジェクト指向的な言語特性や、その特性を強力にサポートするECMAScript 5の機能を紹介し、
それらの特性や機能を活かすプログラミングの方法、考え方、パターンについて、深くそして簡潔に解説する書籍です。

Amazon.co.jp: オブジェクト指向JavaScriptの原則: Nicholas C. Zakas, 和田 祐一郎: 本

tags: javascript book

Posted by NI-Lab. (@nilab)