JavaScript はプロトタイプベースのオブジェクト指向言語であり、クラスという概念を持っていない *1、というのはよく言われることですが、new 演算子とコンストラクタとプロトタイプを使うことでクラスのようなものを作ってインスタンス化することが可能です。 さらに、プロトタイプを使ってクラスの継承も実現できます。 この記事では、JavaScript においてクラスベースの言語と似たようなことをする方法について説明します。 用語 まずは用語の説明をします。 ECMAScript (5th edition) *2 に書かれているものを訳しました。 コンストラクタ (constructor) オブジェクトを生成し、初期化する関数オブジェクト プロトタイプ (prototype) 別のオブジェクトに共有されたプロパティを提供するオブジェクト プロパティ (property) オブジェクトの一部