
257
9
章
クラスを使わないプログラミング
JavaScript
言語に実装されている最小限のツール(関数、オブジェクト、プロト
タイプ、そして配列)に初めて接すると、多くの人々ががっかりします。そのよう
な人々は、彼らにとっての「ソフトウェアの制作に必要なこと」に応えられるよう
JavaScript
を改造するために、クラスベースのシステムをどこかから探しだしてくる
か、あるいは原始の海から自分の手でその再発明を行います。人々は慣れたものを探
すという一般的な前提に立てば、このような行動は理解できます。しかし、もしあな
たが関数型プログラミングを学びながらここまで辿り着いたのであれば、本書でこれ
までに学んだことをまとめて、関数型とオブジェクト指向の考え方をうまく併用する
方法を考えることこそが有意義であると言えます。
本章は、これまで本書で紹介してきたデータと関数に基づいた考え方を辿ることか
ら始めます。もちろん関数とシンプルなデータに則って考えることは大切ですが、そ
のうち、自分でカスタム抽象を組み立てなければならない時がやってきます。その時
のために、ここでは個別の動作を「ミックス」することによってより複雑な動作を組
み立てる方法についてお話しします。そして、そのようなカスタム化の詳細をユーザ
から隠蔽するような関数型の
API
を記述する手段についてお話します。
9.1
データ指向
本書ではこれまで、データモデリングのニーズを
JavaScript
のプリミティブや配
列、そしてオブジェクトを使って定義してきました。つまり、型の階層を生成するこ ...