javascript this指代的問題


//      
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方法バインド作用ドメイン、略して.