Ext.extendのパターン

Ext.extendの手続き方法とかその辺まだよくわかってないので整理のため記。


//独自のグリッドパネルを生成する
oGrid = function(){
	GridP1.superclass.constructor.call(this, {
		title	: "グリッドタイトル",
		//		・・・あと他のオプションを諸々設定する・・・

	});
	this.on('rowcontextmenu', this.onRowContextMenu, this);	//【1】イベントが↓で定義されている(正確に言うとメソッド)
}

//Ext.grid.GridPanelを継承する
Ext.extend(oGrid, Ext.grid.GridPanel, {
	onRowContextMenu : function(grid, rowIndex, e){			//【2】★ここで定義されている
	//		・・・以下省略・・・

【2】の行が定義部分とすると
【1】の行は実装する部分となる。

【1】の時点でoGridオブジェクトのイベントとして登録されている。
つまり、
【1】の時点でoGridオブジェクトのメンバ?(この表現でいいかな・・・)となってることになる?
う〜ん、
メンバに入ってると言ってもonメソッドに引数を与えているタイミングでと言った方が正確か。
そう考えると自然な気がしてきた・・・。

ちなみに、
GridPanelクラスを継承するだけなら
Ext.extend(oGrid, Ext.grid.GridPanel);
だけでよいと思う。
この場合、oGridをnewしたGridPanelで生成することと同じ作業だと現段階では思っている。

なので、新たにconfigを設定しないのであれば、ただ単に
SuperClassでPanelをつくる
と言うことなのである。


今回引っかかったのは、
イベントの登録時 に その内容を後述したもの を持ってきてもよい
ということ。

要は、定義→登録 という流れじゃなくてOKという結論。