日々精進

新しく学んだことを書き留めていきます

Extjs4 initComponentとconstructorの違い

両方とも初期化処理を書くところなのでどう違うかがよくわからない。。ということで調べたら以下の記事が見付かりました。
constructor or initComponent?
この記事によると違いは以下。


・多くのComponentがinitComponentの中で初期化処理をしている。例えば、イベントの定義とか。よってそのようなイベントにアクセスしたい場合はinitComponentを使うこと。
・Ext.Componentを継承していないクラスではインスタンス化の際にinitComponentは呼び出されない。
インスタンス化するときに初期化オブジェクトを指定すると、そのオブジェクトのプロパティはinitialConfigプロパティに入るが、この処理はinitComponentの前に行われる。よって初期化オブジェクトの中身をinitComponentでいじってからインスタンスに持たせる、ということはできない。
・上記の仕様のため、initComponentの中ではcloneConfigを使ってインスタンスを複製することは出来ない。cloneConfigを使いたい場合はconstructorの中で使うこと。