ラベル JavaScript の投稿を表示しています。 すべての投稿を表示
ラベル JavaScript の投稿を表示しています。 すべての投稿を表示

2013年8月22日木曜日

JavaScriptでクラスを定義したい人は集まれ

JavaScriptにおけるクラスの定義はJavaやC++、C#、Objective-Cでのクラスを定義する方法とはかなり違っているのでここで紹介しておきます。
プライベート変数、プライベートメソッドの実装方法もあるYO。
大まかな手順は以下になります。

  1. コンストラクタを定義する
  2. インスタンスメソッドを定義する
  3. クラスメソッドを定義する

ここではモンスタークラスを実際に定義していくことにします。
モンスタークラス仕様
  1. 名前を取得設定出来る。
  2. ライフを取得設定出来る。
  3. x、y座標を指定して移動できる。
  4. モンスターを継承したボスモンスターが存在する。

1.コンストラクタを定義する

コンストラクタとは言ってもただの関数で関数名がクラス名になります。

2.インスタンスメソッドを定義する

インスタンスメソッドはコンストラクタのprototypeオブジェクトに定義します。prototypeってなに?さ、さぁ。。。

3.クラスメソッドを定義する

クラスメソッドやクラス変数はコンストラクタのプロパティとして定義します。

4.モンスタークラスを継承したボスモンスタークラスを定義する

継承は下記の2つで実現出来ます。

  1. コンストラクタでスーパークラスのコンストラクタを呼び出す。
  2. サブクラスのprototypeにスーパークラスのprototypeを設定する、


5.動的な継承

これは下で紹介しているオライリー本に掲載されていました。詳細はよくわかりませんがこの方法でJavaScriptにおける動的なクラスの継承が実現できました。

6.プライベート変数やプライベートメソッドの定義方法

プライベート変数、プライベートメソッドを定義する為のポイント
  1. ファクトリーメソッド内でインスタンスを生成する
  2. プライベート変数、プライベートメソッドをファクトリーメソッド内に定義する
  3. プライベートメソッドはインスタンスにバインドする。
  4. パブリックメソッドをファクトリーメソッド内に定義する
  5. クロージャーを応用してプライベイート変数、プライベートメソッドを実現している

このエントリーをはてなブックマークに追加