假设我想通过向各自的原型添加函数来扩展Number
或String
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;
}
});