【发布时间】:2012-03-04 21:50:44
【问题描述】:
我需要定义一些可以在我的应用程序中随处调用的函数。 实现这一目标的最佳方法是什么?
【问题讨论】:
标签: javascript extjs model-view-controller
我需要定义一些可以在我的应用程序中随处调用的函数。 实现这一目标的最佳方法是什么?
【问题讨论】:
标签: javascript extjs model-view-controller
就个人而言,为了尽可能保持 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);
}
});
【讨论】:
Utilities.foo调用MyApp.Utilities.foo吗?
除了@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
静态方法和单例方法的区别在于
因此,为方便起见,是引用类本身还是引用该类的一个实例取决于您。
【讨论】: