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

时间:2012-04-20 08:34:37

标签: extjs extjs4 prototype extjs4.1

这是ExtJS Shape Class

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 ...
},

我该怎么做?

2 个答案:

答案 0 :(得分:3)

我找到了答案。如果有人需要,这就是解决方案:

Ext.define('MyShape', {
    override: 'Ext.chart.Shape',

    initialize: function() {
        this.callOverridden(arguments);
    },

    myCircle: function (surface, opts) {
        return ...
    }
});

答案 1 :(得分:2)

您可以扩展以添加新函数,或覆盖以更改类上现有函数的行为。以下链接是有关如何使用它们的sencha文档中的详细信息。

Extend

Override

extend的示例实现:

Ext.define('yourCustomClassHere', {
    extend: 'Ext.chart.Shape',
    newFunctionName: function () {
       //your function here
    }
});