2 番目と 3 番目のスニペットは機能的に同等です。プロパティ callParent
を経由する代わりに、親の関数を呼び出すためのよりクリーンで簡単な方法です。superclass
最初の例はまったく異なります。1 つは、親のコンストラクターを呼び出しません。これは通常、悪いニュースです。基本クラスには通常、実行する必要があるいくつかの初期化があり、コンストラクター (および initComponent) の親を呼び出すのを忘れると、バグの一般的な原因になります。
initConfig
は、次のような便利なメソッドです。
- オブジェクトの初期設定を渡された設定とマージします
- 構成内のすべてのプロパティのゲッターとセッターを作成する
- 構成をオブジェクトに適用する
これは、親コンストラクターの呼び出しとはまったく異なります。親コンストラクターの呼び出しは、それが何をするように書かれているかに完全に依存しています。を使用するものもあれば、使用initConfig
しないものもあり、initConfig と同様のことを手動で行うものもあります。
を使用する必要はなくinitConfig
、場合によっては危険ですらあります。しかし、それはまったく別の話です (Ext 4.1 の場合、initConfig は無害であり、4.0 と同じ危険な副作用を含まないように見えます)。
サイドノート
指摘するだけです。2 番目と 3 番目のスニペットでは、コンストラクターは必要ありません。コンストラクターが親のコンストラクターのみを呼び出している場合は、コンストラクターを完全に除外できます。