Ext.defineを利用したクラス生成:メンバ定義を後から行う – Ext JS 4


引き続き、Ext.defineの話。
クラス定義を行った後に、動的にメンバ定義を行うための手法をご説明します。

通常、クラス定義を行う際にExt.extendの時も、オブジェクトリテラルで定義して終わりでした。
JavaScriptなので、無理矢理追加することも可能でしたが、Ext JS 4 からは、これらの操作を行うためのメソッドが用意されています。

そのメソッドとは、extendです。
あれ?Ext.extend復活??いいえ、違います。定義したクラスオブジェクトのメソッドになります。

次のコードをご覧ください。

追加のやり方は、key/valueの順に設定する方法と、オブジェクト指定して複数指定する方法の2種類が提供されます。

利用するコード部分をお気づきになりましたか?そうです、このextendメソッドは、静的メンバを動的に追加するためのメソッドです。
これでは、クラス定義のstaticsを動的に設定できるだけです。ここから、本番です。
メンバ定義を後から動的に行うメソッド、それは、implimentです。

早速、上記のコードの後ろに追加して、動的にメンバを実装してみましょう。

利用方法は、extendとimplementは、同じですね。
2つの違いを理解して、ケースバイケースで利用することで、柔軟な設計が可能になりそうですね。

Ext.defineを利用したクラス生成:メンバ定義を後から行う – Ext JS 4