0

假设我想通过向它们各自的原型添加函数来扩展Number或ectString

我在哪里将代码放在 ExtJS 4 应用程序中,以便它在任何地方都可用?

我已经尝试将我的所有Number.prototype.<whatever>'s 放在一个单独的文件中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;
    }
}
});
4

2 回答 2

1

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

于 2013-09-17T18:58:25.017 回答
0

您可以只使用 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;
     }
});
于 2013-09-17T16:20:28.407 回答