* オブジェクトリテラルを使ったクラス作成 - 詳細 [#x989e164]
* オブジェクトリテラルを使ったクラス作成 - 応用 [#x989e164]

** クラスの作成 [#p55e2c0a]
 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)を返す。

** インスタンスを作成・メソッドを利用 [#v3e37dc3]
 var a = Animal("Taro", 10);
 a.sayName();

*** オブジェクトリテラルを使ったクラスのメリット [#f2092a89]
クラス内の変数・関数を隠蔽出来る。この例の場合、thatにageをセットしなければ、ageはプライベート変数になる。

** 継承 [#k134b5ab]
*** 子クラスの作成 [#k186c407]
 var Dog = function (name, age) {
    
    var that = Animal(name, age);
 
    that.sayAge = function () {
        alert("My age is " + this.age);
    }
 
    return that;
 }

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

*** 子クラスのインスタンスを作成・利用 [#z5d89b00]
 var d = Dog("Jiro", 5);
 d.sayName();
 d.sayAge()

- sayName()は親クラスで定義、sayAge()は子クラスで定義されている。

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