Web サイト構築のスタンダードである JavaScript 言語の入門サイト。実用的なサンプルコードを用いて平易に解説
JavaScript 入門JavaScript 入門
JavaScript 開発環境
JavaScript の基本
ブラウザの JavaScript
JavaScript の発展的な話題
関連サイト
サイト情報
ホーム > JavaScript の基本 > コンストラクタ

コンストラクタ

ここでは JavaScript のコンストラクタ (Constructor) について説明します。

コンストラクタを理解するには関数 について理解しておく必要があります。

関数の書き方が良く分からない、という方は読み進む前に一度確認しておいてください。

さて、それではコンストラクタをみていきましょう。

JavaScript のコンストラクタとは?

コンストラクタは、オブジェクトを作成し、初期化する関数オブジェクト (Function オブジェクト) です。

それぞれのコンストラクタは、関連付けされたプロトタイプオブジェクトを持っており、 継承や共有プロパティを実装するために利用することができます

ひと言で言うとこういうことですが、それぞれどんな意味か確認していきます。

コンストラクタはオブジェクトを作成し、初期化する関数オブジェクト

次のコードを見てください。

function Person(n) { // Constructor
	this.name = n;
	return this; // opt.
}

var p1 = new Person('Hanako');
document.write(p1.name);

ここでは Person という名前の関数はコンストラクタとして作成されています。

パラメータ n を受け取り、this.name というプロパティに値をセットして、this を返しています。 (return this という行は任意ですが、ここでは分かりやすくするために書いています。)

これを利用しているのは new Person... の部分です。

コンストラクタに対して new キーワードを用いることで、オブジェクトを作成し、プロパティ name を初期化しています。

コンストラクタは関連付けされたプロトタイプオブジェクトを持っている...

コンストラクタを定義すると、コンストラクタ毎に関連付けされた "プロトタイプオブジェクト" というのが暗黙的に作成されます。

このオブジェクトは prototype プロパティからアクセス可能です。また、 prototype オブジェクトのメソッドやプロパティは、オブジェクトから ".property" 抜きでアクセス可能です。

同じコンストラクタから生成されたオブジェクトは、プロトタイプオブジェクトを共有します。このため、 プロトタイプオブジェクトに対して、関数やプロパティを定義すれば、作成されたオブジェクトは同じ関数やプロパティをもつことができます。

また、prototype オブジェクトを別のオブジェクトに差し替えることによって、差し替えたオブジェクトの prototype オブジェクトともリンクさせることができます。

この機能を用いることによって、オブジェクトのもつ機能を別のオブジェクトに対して継承させることが可能です。

具体例などについては、プロトタイプ のページを参照してください。


ホーム > JavaScript の基本 > コンストラクタ
小山圭介 著者
小山 圭介
4/15/1973生
米国在住のソフトウェアエンジニア。ITコンサルタント
»プロフィール

© 2012-2017 JavaScript 入門