javascript this指代的問題
1504 ワード
//
Ipms.GridPanel = function(){
this.selections = new Ext.grid.RowSelectionModel(); //
this.toolBar = new Ipms.ToolBar(); // buttons
this._onSelectionChange = function(){
this.name; // :this selections, GridPanel
// do something..
};
//
this.selections.on('selectionchange', this._onSelectionChange);
};
方法はGridPanelの内部で定義されているが、彼はセレクションに結合されているので、方法内部のthisは前者ではなく後者を指す.セレクションイベントのインターフェースが固定されていますので、修正できません.onselection Changeはパラメータを伝達する方法の一つとして、オブジェクトセレクションにあらかじめ属性を結びつけることが挙げられます.
//
Ipms.GridPanel = function(){
this.selections = new Ext.grid.RowSelectionModel(); //
this.toolBar = new Ipms.ToolBar(); // buttons
this.selections._toolBar = this.toolBar; //
this._onSelectionChange = function(){
this._toolBar; // :this selections, GridPanel
// do something..
};
//
this.selections.on('selectionchange', this._onSelectionChange);
};
或いは_にあげますonSelection Change方法バインド作用ドメイン、略して.