Ext JS中的多个替代项

时间:2018-06-22 17:19:49

标签: extjs

Ext JS如何处理多个替代?他们是连锁的,还是最后一个确定的胜利?我需要决定是定义一个覆盖还是在可能存在多个覆盖的情况下直接覆盖一个类。

1 个答案:

答案 0 :(得分:3)

最后一个获胜,但调用callParent时链接的重写函数,如此Sencha fiddle所示:

Ext.define('A', {
    a: function() {
        console.log('a');
    },
    A: 'A'
});
Ext.define('B', {
    override: 'A',
    a: function() {
        console.log('b');
        this.callParent(arguments);
    },
    A: 'B'
});

Ext.define('C', {
    override: 'A',
    a: function() {
        this.callParent(arguments);
        console.log('c')
    },
    A: 'C'
});

var a = Ext.create('A')
a.a();
console.log(a.A);

控制台结果

  

b
  一个
  c
  C