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 件のコメント:
コメントを投稿