2016-06-09 95 views
1

我想調用一個泛型函數,但是當該函數執行時,我在不同的範圍(窗口)。此代碼將繪製案例:Sencha失去了上下文

Ext.application({ 
    name : 'Fiddle', 
    context: null, 

    function1 : function(){ 
     this.function2(this.function3); 
    }, 

    function2 : function(func){ 
     func(); 
    }, 

    function3 : function(){ 
     if(context == this){ 
      Ext.Msg.alert('Fiddle', 'Same context!'); 
     } 
     else { 
      Ext.Msg.alert('Fiddle', 'Different context!'); 
     } 
    }, 

    launch : function() { 
     context = this; 
     this.function1(); 
    } 
}); 

我想使用綁定,但它不工作。

謝謝!

回答

1

您可以使用bind,嘗試改變function1,如:

function1: function(){ 
    this.function2(this.function3.bind(this)); 
} 

(這樣funcfunction2與您的預期this一個新的功能。)

+0

非常感謝! –