クラス
JavaScriptによる設計パターンでは、少なくとも2つのデザインパターンがあります。モジュール(module)パターンと、クラス(class)パターンです。
モジュールパターンでは、内部の値を隠蔽するため、クロージャを利用します。
一方、クラスパターンでは、オブジェクト継承の多様なパターンの実現のため、プロトタイプ(prototype)のチェインを利用します。prototype.jsはこのような設計となっています。
まず、銀行の口座を表すクラスの例で見てみましょう。
- -
上記のTypeScriptのクラスをコンパイルすると、出力されるJavaScriptのコードは次のようになります。
- -
このクラスの使い方は、次のようになります。
- -
この預金口座に、初期値を与える場合は、TypeScriptのコンストラクタで指定することができます。 コンストラクタを導入した例は、次のようになります。
- -
上記の例を利用する場合、このようなコードになります。
- -
TypeScriptでは、このようなコンストラクター部分をより短く書くための文法があります。 以下のようなものです。
- - このとき、出力されるJavaScriptは、次のようになります。
- -
継承
TypeScriptのクラスでは、継承を使うことが出来ます。次の例は、BankAccountを継承した小切手用の口座です。- - コンストラクタの中で、親クラス(BankAccount)のコンストラクタを呼び出しています。関数writeCheckでは、親クラスのフィールドに対して、アクセスしていることが分かります。
このCheckingAccountまでをJavaScriptに変換した結果は、次のようになります。
- -
(つづく)
(見出しへ)
0 件のコメント:
コメントを投稿