Skip to Main Content
ハンズオンJavaScript
book

ハンズオンJavaScript

by あんどうやすし
November 2020
Intermediate to advanced content levelIntermediate to advanced
740 pages
9h 12m
Japanese
O'Reilly Japan, Inc.
Content preview from ハンズオンJavaScript

付録AJavaScriptのオブジェクト指向

混乱を避けるために本書では一貫してJavaScriptをクラスベースのオブジェクト指向言語として扱ってきました。つまり、オブジェクトの雛形としてのクラスがあり、継承関係はクラスによって規定され、new演算子をクラスに対して使用してインスタンス化することで新しいオブジェクトが生成される、といったようにクラスがすべての根幹となるオブジェクト指向言語であるかのように説明しました。

この付録にまでたどり着いた皆さんはきっと混乱を乗り越えられるものと信じて書きますが、端的に言うとJavaScriptに関する先の説明は嘘です。実はJavaScriptはクラスベースのオブジェクト指向言語を装ったプロトタイプベースのオブジェクト指向言語なのです。

オブジェクト指向はつまるところ関連するデータと振る舞いの集合であるオブジェクト同士の関係としてシステムを捉えようという考え方です。クラスは必須ではありません。現在クラスベースのオブジェクト指向が主流であることは事実ですが、オブジェクト指向にはそれ以外にもいくつか流派があり、プロトタイプベースはそのひとつです。

A.1 プロトタイプチェーン

プロトタイプベースのオブジェクト指向言語では、クラスではなくプロトタイプを使用してメソッドの実装を共有し、継承もプロトタイプチェーンという方式で実現します。「4章 オブジェクトを学ぶ」でオブジェクトリテラルで継承を実現する方法として__proto__というプロパティを使用したことを覚えているでしょうか? 以下に例を再掲します。

> let tusk1 = { 
    cry: "Chumimin", 

    act1() { 
      console.log(this.cry) 
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

ハイパフォーマンスPython 第2版

ハイパフォーマンスPython 第2版

Micha Gorelick, Ian Ozsvald, 中山 光樹
パフォーマンス向上のためのデザイン設計

パフォーマンス向上のためのデザイン設計

Lara Callender Hogan, 西脇 靖紘, 星野 靖子
PythonによるWebスクレイピング 第2版

PythonによるWebスクレイピング 第2版

Ryan Mitchell, 黒川 利明, 嶋田 健志

Publisher Resources

ISBN: 9784873119229Other