Javascript 关于Sencha/Ext JS事件火灾和开启

Javascript 关于Sencha/Ext JS事件火灾和开启,javascript,android,events,extjs,sencha-touch,Javascript,Android,Events,Extjs,Sencha Touch,我们正在开发一个web应用程序。为了保持组件的预配置,我做了很多Ext.extend工作 这是预先定义 在入口,在index.js中 主类App.js中的App将添加一些新的卡组件,例如: App = Ext.extend(Ext.Panel,{ initComponent: function(){ this.sub1 = new Sub_Class_1(); this.sub2 = new Sub_Class_2(); this.sub3

我们正在开发一个web应用程序。为了保持组件的预配置,我做了很多Ext.extend工作

这是预先定义

在入口,在index.js中

主类App.js中的App将添加一些新的卡组件,例如:

App = Ext.extend(Ext.Panel,{
    initComponent: function(){
        this.sub1 = new Sub_Class_1();
        this.sub2 = new Sub_Class_2();
        this.sub3 = new Sub_Class_3();
        this.items = [this.sub1, this.sub2, this.sub3];
        App.superclass.initComponent.call(this);
        this.sub1.on('Event1', this.Event1_fn, this)
    },
    Event1_fn: function() {
        //some codes
    }
});
在Sub_Class_1的定义中,Sub_Class_1.js中出现了问题:


问题是,如果我在firefun中启动该活动,程序不会有任何反应。范围有问题吗?社区能否帮助我提出一些建议,我可以用这些建议来修复它?

我解决了这个问题。这确实是由于范围问题

为了解决这个问题,我将eventName、eventListener和scope传递给函数。让它能在正确的范围内开火。轰,成功了

有更好的解决办法吗

App = Ext.extend(Ext.Panel,{
    initComponent: function(){
        this.sub1 = new Sub_Class_1();
        this.sub2 = new Sub_Class_2();
        this.sub3 = new Sub_Class_3();
        this.items = [this.sub1, this.sub2, this.sub3];
        App.superclass.initComponent.call(this);
        this.sub1.on('Event1', this.Event1_fn, this)
    },
    Event1_fn: function() {
        //some codes
    }
});
var firefun = function() {
    this.fireEvent('Event1');
};

Sub_Class_1 = Ext.extend(Ext.Panel,{
    //some similar init configure jobs.
    //add *firefun* into this class
})