自作コンパイラの部屋 > オブジェクト指向プログラム言語としてのJavaScript > 13.コンストラクタ

13.コンストラクタ

 あまり知られていないようですが、JavaScriptはプログラマが独自のクラスを作成することができます。そのためには、コンストラクタの使用法を習得する必要があります。
 JavaScriptは本質的に型のないダイナミックな言語仕様であり、宣言というものがありません。このため、クラスは宣言するものではなく、実行時にプロパティを設定(代入)することにより、クラスを定義します。
 コンストラクタは関数の一種であり、以下のように new 演算子により起動します。

    var userObject = new UserConstructor(arg1, arg2, ...);

 コンストラクタの例として、Pointクラスを作ってみます。Pointクラスは2次元の座標軸上の「点」を表します。

    function Point(x, y) {
         this.x = x;
         this.y = y;
    }
    var p = Point(10, 20);
    document.writeln("p(", p.x, ", ", p.y, ")");

実行結果:

 上図のように、オブジェクトのメンバーアクセスには予約語 this を使います。コンストラクタ Point の中で this.x と単独の x が出てきますが、前者はメンバー x、後者は引数の x を指しています。この例のように名前を同一にする必要はもちろんありませんが、ここでは敢えて同一にできるという例を示しました。

14.コンストラクタとメソッド

目次