ExtJS:在哪里定义基类的原型扩展



假设我想通过向各自的原型添加函数来扩展NumberString ect

我应该将代码放在 ExtJS 4 应用程序中的什么位置,以便它在任何地方都可用?

我尝试将所有Number.prototype.<whatever>放在一个单独的文件app.prototypes中,然后将此文件附加到我的requires配置中,以供Ext.application...但随后应用程序以静默方式失败(不加载,没有错误)。

建议?

这就是我所拥有的...但它不起作用:

Ext.define('PT.overrides.Number', {
override: 'Ext.Number',
constructor:function(config) {
    var me = this;
    me.callParent(arguments);
    me.formatMoney = function(c, d, t) {
        console.log('called');              // never called
        var result;
        // blah, blah
        return result;
    }
}
});

不要扩充基础原型,这是目前所有主要 JavaScript 框架中都回避的糟糕风格。要么像 Trendy 建议的那样在新类中扩展 Ext.Number,要么只使用 Ext.util.Format 方法 - 无需在这里重新发明轮子。

您可以使用 Ext Define 来定义/扩展类:

Ext.define('Your.Class.Name' /*null for anonymous class*/, {
     extend:'Ext.Number' /*class to extend*/,
     constructor:function(config) {
          this.initConfig(config);
          return this;
     }
});

最新更新