アプリのどこからでも呼び出すことができるいくつかの関数を定義する必要があります。これを達成するための最良のアプローチは何ですか?
個人的には、可能な限りEXT-MVCを維持するために、静的メソッドでいっぱいのUtilitiesクラスがあります。これは、他のクラスと同様に、適切な依存関係を維持するために必要になる場合があります。これにより、メソッドがEXT環境で実行されるため、すべてのEXTが使用可能になります。
Ext.define('MyApp.Utilities', {
statics: {
foo: function (a, b) {
return a + b;
}
}
});
Ext.define('MyApp.MyView', {
extends: 'Ext.panel.Panel',
requires: ['MyApp.Utilities'],
initComponent: function () {
MyApp.Utilities.foo(1, 2);
}
});
@David Kanarekの静的アプローチ以外の別の方法は、シングルトンを定義することです。コード:
Ext.define('MyApp.Utilities2', {
singleton: true,
global_var2: 'Hello World',
foo2: function (a, b) {
return a + b;
},
});
ここでフィドルを作成しました: https://fiddle.sencha.com/#fiddle/qu1
静力学とシングルトンアプローチの違いは、
したがって、便宜上、クラス自体を参照するか、そのクラスの1つのインスタンスを参照するかはあなた次第です。