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という結論。