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

メモ:  Category:javascript

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());

bluenote by BBB