4章オブジェクトを学ぶ

データと処理はお互いに独立して存在しているわけではありません。あるデータ型に対して特定の処理パターンが頻繁に使用されたり、ある処理が特定のデータ型に依存していることはよくある話です。データと処理に関連があるなら何らかの方法でそれらをまとめようとするのは自然な発想でしょう。オブジェクトがそれを可能にします。

これまではオブジェクトを「プロパティという形で関連する値をまとめ、名前を付けて管理する手段」と説明していました。しかし、実際にはオブジェクトはそれ以上の、JavaScriptの根幹をなすと言ってもよい存在です。

なぜオブジェクトがそれほど重要なのか。それはオブジェクトは単なるデータ構造でなく、思考のフレームワークの要素でもあるからです。

4.1 オブジェクト指向

データと処理をまとめたオブジェクトを中心にしてシステム全体を理解しようとするオブジェクト指向(object orientation)というコンセプトがあります。オブジェクト指向はプログラムの実装だけに限定されるものではありません。システムの捉え方、つまり問題領域の分析やシステムの設計にも影響を与えるものです。通常、プログラミングは何かしらの課題を解決するために行うものですが、そのためにはまず課題の理解が必要です。オブジェクト指向はその課題の構造を捉えるフレームワークとして機能します。

問題領域の構造は大きく分けて2つあります。静的な構造と動的な構造です。言い換えるとシステムの各要素がどのように関係しているかと、それらがどのように協働するかです。そのうちの後者は前章までで説明したデータ構造とアルゴリズムの延長と捉えて問題はないでしょう。オブジェクト指向に特徴的なのは前者、静的な構造の捉え方です。 ...

Get ハンズオンJavaScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.