如何向ExtJS4中的单例添加方法?

如何向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,

这是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,
            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用于更改现有函数的行为。