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

Difference between Class.override() vs Ext.define('Class', override: 'Class' ... to create an override

这2个override有什么区别

因此选项 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

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

调用 Class.override() 是 Ext JS 3.x 时代的遗留问题,当时没有可用的动态 class 加载,您必须自己处理管道。没有理由和4+一起使用。