【Sencha ExtJs】callSuper(), callParent()の振る舞いの違い

callSuper()とcallParent()メソッドの振る舞いの違いを整理してみました。

違いは、以下のとおりです。


callSuper()では、Overrideされた基底クラスのメソッドは呼ばれません。

 ・Override -> Base.

対してcallParent()では、Overrideされた基底クラスのメソッドが呼ばれます。

 ・Override -> Derived -> Base.

Ext.application({
    name : 'Fiddle',

    launch : function() {
        var object = Ext.create('Ext.some.DerivedClass');
        object.method();
    }
});
/**
 * 基底クラス
 */
Ext.define('Ext.some.Class', {
    method: function() {
        console.log('Base method');
    }
});

/**
 * 派生クラス
 */
Ext.define('Ext.some.DerivedClass', {
    extend: 'Ext.some.Class',
    method: function() {
        console.log('Derived method.');
        this.callParent();
    }
});

/**
 * 派生クラスをOverride
 */
Ext.define('App.paches.DerivedClass', {
    override: 'Ext.some.DerivedClass',

    method: function() {
        console.log('Override method.');
        //this.callSuper(); // Override -> Base.
        this.callParent(); // Override -> Derived -> Base.
    }
});


 以下にデモ&ソースがあるので参考にしてみて下さい。

デモ&ソース

0 件のコメント:

コメントを投稿

POKUDA AI高画質化工房サポートページ

当製品に関する問い合わせはこのコメント欄へお願いします