ExtJS 4.1 でシングルトン クラスからコンストラクタをオーバーライドするのに苦労しています。オーバーライドを定義しましたが、オーバーライド ステートメントが処理されるまでに、コンストラクターは既に実行されています。
Ext.define('singleton', {
singleton: true,
constructor: function() {
alert('replace me');
}
});
ExtJS 4.1 でシングルトン クラスからコンストラクタをオーバーライドするのに苦労しています。オーバーライドを定義しましたが、オーバーライド ステートメントが処理されるまでに、コンストラクターは既に実行されています。
Ext.define('singleton', {
singleton: true,
constructor: function() {
alert('replace me');
}
});
シングルトンクラスをオーバーライドすることはできません。これは本当ですが、シングルトン インスタンスをオーバーライドすることはできます。
Ext.define('singleton', {
singleton: true,
constructor: function() {
// does whatever
}
});
Ext.define('singletonOverride', {
override: 'singleton',
// adding new property
foo: 'bar',
// adding new method
baz: function() {},
initSingletonOverride: function() {
// do whatever is needed
// to augment the singleton
// behavior the way you want
}
},
function() {
// `this` is the singleton instance
this.initSingletonOverride();
});
この綿毛はすべて JavaScript オブジェクトに帰着することに注意してください。クラスはオブジェクトであり、クラス インスタンスは別のオブジェクトです。どちらか、または両方をオーバーライドできます。クラスシステムは、あなたが何をしているかを見失わないようにするためにあります。