在ExtJS 4 MVC中,我应该在哪里定义全局函数

Where should I define global functions in ExtJS 4 MVC?

本文关键字:在哪里 定义 全局 函数 我应该 ExtJS MVC      更新时间:2023-09-26

我需要定义一些函数,我可以在应用程序中的任何地方调用这些函数。实现这一目标的最佳方法是什么?

就我个人而言,为了尽可能保持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

静态方法和单例方法之间的区别在于

  • MyApp.Utilities2(singleton方法)是一个对象
  • 实用程序(statics方法)是一个类

因此,这取决于您是引用类本身还是为了方便而引用该类的一个实例。