Class.override()与Ext.define之间的区别('Class',覆盖:'Class'...以创建覆盖

时间:2015-05-06 16:40:38

标签: javascript extjs extjs4

这两个覆盖

之间的区别是什么

所以选项1:

Ext.window.Window.override({
    initComponent: function () {
        this.draggable = false;
        this.resizable = false;

        this.on('resize', function () {
            this.center();
        });

        this.callParent();
    }
});

选项2:

Ext.define('Ext.window.WindowOverride', {
    override: 'Ext.window.Window',

    initComponent: function () {
        this.draggable = false;
        this.resizable = false;

        this.on('resize', function () {
            this.center();
        });

        this.callParent();
    }
});

我应该遵循哪种方法?为什么?

特别使用Extjs 4.1.1

1 个答案:

答案 0 :(得分:4)

第二个选项基本上是第一个选项的包装器;它将在加载Ext.window.Window后应用覆盖。

调用Class.override()是Ext JS 3.x天的遗留物,当时没有可用的动态类加载,你必须自己处理管道。没有理由将它与4 +一起使用。