クラスのようなものを作成

JavaScriptでは、関数もオブジェクトです。 この、関数オブジェクトを使用してクラスのようなオブジェクトを定義してみます。

function Person() {
}
var user = new Person();

上記例では、function Personでクラスが定義され new により インスタンスが作成されます。 このPersonには、何も定義していませんが toSource などのメソッドを使用することができます。 これは、Objectオブジェクトのインスタンスを参照しているためです。

コンストラクタ

インスタンス化されるとthis 引数としてコンストラクタに作成されたオブジェクト渡されます。 それでは、コンストラクタで値を設定してみます。

function Person(_name) {
    this.name = _name;    //プロパティ
}
var user = new Person('bnote');
window.alert(user.name);

メソッド(メンバ関数)

JavaScriptでは、prototypeというプロパティを使って オブジェクトにメソッドやプロパティを 動的に追加することができます。 Personオブジェクトのprototypeプロパティを使って メソッドを追加します。

function Person(_name) {
    this.name = _name;    //プロパティ
}
Person.prototype.getName = function (){
    return this.name;
}
var user = new Person('bnote');
window.alert(user.getName());