オブジェクトリテラルを使ったクラス作成 - 応用

クラスの作成

 var Animal = function (name, age) {
   var that = {};
 
   that.name    = name;
   that.age     = age;
   that.sayName = function () {
       alert("My name is " + this.name);
   }
    
   return that;
 };

Animal()はコンストラクタであり、初期化処理後、オブジェクトリテラル(that)を返す。

インスタンスを作成・メソッドを利用

 var a = Animal("Taro", 10);
 a.sayName();

オブジェクトリテラルを使ったクラスのメリット

クラス内の変数・関数を隠蔽出来る。この例の場合、thatにageをセットしなければ、ageはプライベート変数になる。

継承

子クラスの作成

 var Dog = function (name, age) {
    var that = Animal(name, age);
 
    that.sayAge = function () {
        alert("My age is " + this.age);
    }
 
    return that;
 }

thatを(空のオブジェクトリテラルではなく)Animal()で初期化して、Animalの継承を実現している。

子クラスのインスタンスを作成・利用

 var d = Dog("Jiro", 5);
 d.sayName();
 d.sayAge()
  • sayName()は親クラスで定義、sayAge()は子クラスで定義されている。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2012-09-18 (火) 07:57:47