JavaScriptでオブジェクト指向 - クラスとインスタンス

JavaScriptでのオブジェクト指向をちょっぴりかじったので忘れないようにメモ.


JavaScriptのクラス(みたいなモノ?)は,実質的にはコンストラクタとしての無名関数.

var Cat = function(){};


引数ありのコンストラクタはこんな感じ.

var Cat = function( name, age ){
    this.name = name;
    this.age = age;
};


フィールド定義.
prototypeオブジェクトの中にオブジェクトを作る.

var Cat = function(){};

Cat.prototype.color = "black";


メソッドはprototypeオブジェクトの中に無名関数で定義する.

var Cat = function( name, age ){
  this.name = name;
  this.age = age;
};

Cat.prototype.printName = function(){
        alert( this.name );
};

Cat.prototype.printAge = function(){
        alert( this.age );
};


また,こんなカタチで連想配列で詰めてもOK.

var Cat = function( name, age ){
  this.name = name;
  this.age = age;
};

Cat.prototype = {
    printName : function(){
        alert( this.name );
    },
    printAge : function(){
        window.alert( this.age );
    }
};


インスタンスはnewして作る.

var cat = new Cat( "Tadahira", 9 );
cat.printName();

JavaScriptでオブジェクト指向プログラミング