如何向ExtJS4中的单例添加方法?
这是ExtJS形状类:如何向ExtJS4中的单例添加方法?,extjs,extjs4,prototype,extjs4.1,Extjs,Extjs4,Prototype,Extjs4.1,这是ExtJS形状类: Ext.define('Ext.chart.Shape', { singleton: true, circle: function (surface, opts) { return surface.add(Ext.apply({ type: 'circle', x: opts.x, y: opts.y, stroke: null,
Ext.define('Ext.chart.Shape', {
singleton: true,
circle: function (surface, opts) {
return surface.add(Ext.apply({
type: 'circle',
x: opts.x,
y: opts.y,
stroke: null,
radius: opts.radius
}, opts));
},
...
});
我想向这个类添加一个方法。例如:
myCircle: function (surface, opts) {
return ...
},
如何执行此操作?您可以扩展以添加新函数,或重写以更改类上现有函数的行为。下面的链接是sencha文档中解释如何使用它们的详细信息 extend的示例实现:
Ext.define('yourCustomClassHere', {
extend: 'Ext.chart.Shape',
newFunctionName: function () {
//your function here
}
});
我找到了答案。如果有人需要,这就是解决方案:
Ext.define('MyShape', {
override: 'Ext.chart.Shape',
initialize: function() {
this.callOverridden(arguments);
},
myCircle: function (surface, opts) {
return ...
}
});
现在是4.0.7。有什么不同吗?谢谢。你能给我举个例子吗?因为我在尝试使用它们时遇到了不同的错误。什么错误?我链接到的文档已经包含示例。我不想扩展它。我只想为Shape类添加另一个方法。当我想覆盖它时,我得到了一个错误:“Ext.chart.Shape.override不是函数”如果我想扩展它,我得到了一个错误:“parentPrototype未定义”添加了一个扩展的示例实现。我认为Extend用于添加新函数,Override用于更改现有函数的行为。