2012年10月14日日曜日

[TypeScript]クラス(Classes)

クラス

JavaScriptによる設計パターンでは、少なくとも2つのデザインパターンがあります。
モジュール(module)パターンと、クラス(class)パターンです。

モジュールパターンでは、内部の値を隠蔽するため、クロージャを利用します。

一方、クラスパターンでは、オブジェクト継承の多様なパターンの実現のため、プロトタイプ(prototype)のチェインを利用します。prototype.jsはこのような設計となっています。

まず、銀行の口座を表すクラスの例で見てみましょう。

- -
上記のTypeScriptのクラスをコンパイルすると、出力されるJavaScriptのコードは次のようになります。
- -
このクラスの使い方は、次のようになります。
- -
この預金口座に、初期値を与える場合は、TypeScriptのコンストラクタで指定することができます。 コンストラクタを導入した例は、次のようになります。
- -
上記の例を利用する場合、このようなコードになります。
- -
TypeScriptでは、このようなコンストラクター部分をより短く書くための文法があります。 以下のようなものです。
- - このとき、出力されるJavaScriptは、次のようになります。
- -

継承

TypeScriptのクラスでは、継承を使うことが出来ます。次の例は、BankAccountを継承した小切手用の口座です。
- - コンストラクタの中で、親クラス(BankAccount)のコンストラクタを呼び出しています。関数writeCheckでは、親クラスのフィールドに対して、アクセスしていることが分かります。
このCheckingAccountまでをJavaScriptに変換した結果は、次のようになります。
- -
(つづく)


(見出しへ)

0 件のコメント:

コメントを投稿