9章クラス

JavaScriptのオブジェクトについては6章で学習しました。6章で使ったオブジェクトは、オブジェクトごとに保持するプロパティが異なっていました。しかし、オブジェクトのクラスを定義して、あるプロパティ群を共有できるようにしたほうが一般的には便利です。クラスのメンバー(インスタンスとも言います)は、状態を保持するためのプロパティを持ちます。また、振る舞いを定義するためのメソッドも持ちます。この振る舞いは、クラスで定義され、すべてのインスタンスで共有されます。例えば、複素数を表したり、複素数の計算を行ったりするために、Complexという名前のクラスを定義したとします。Complexクラスのインスタンスには、複素数の実数部と虚数部を保持するプロパティが必要です。さらに、Complexクラスには、複素数を加算したり乗算したりするメソッドも定義したほうがよいでしょう。

JavaScriptのクラスでは、プロトタイプベースの継承を行います。2つのオブジェクトが同じプロトタイプオブジェクトからプロパティ(一般的には関数値のプロパティ、つまり、メソッド)を継承している場合、この2つのオブジェクトは同じクラスのインスタンスになります。JavaScriptのプロトタイプと継承については、それぞれ§6.2.3§6.3.2で学びました。本章を理解するには、この2つの項で紹介している内容をよく理解しておいてください。本章では§9.1でプロトタイプについて説明します。

2つのオブジェクトが同じプロトタイプを継承する場合、一般には、2つのオブジェクトは同じコンストラクタ関数で生成され初期化されたということを意味します(常にそうだというわけではありません)。コンストラクタについては、§4.6 ...

Get JavaScript 第7版 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.