我遇到了一个非常简单的问题 - 在类之间调用函数。假设我在我已经定义的一个类中有一个函数(renderMap):App.ux.MyClass(我还在app.js中添加了这个类到'需要')。如何调用' renderMap'来自其他班级的功能?
我尝试了App.ux.MyClass.renderMap(),但我得到了#undefined不是函数'。
答案 0 :(得分:0)
我认为它在应用程序架构中存在问题。
您可以使用DI(这将是最佳选择),但是,如果您不能,请尝试创建Singleton或ServiceLocator模式(是的,我知道它们是反模式)。
在ExtJS 4.x和Sencha Touch 2.x中可以通过类中的statics
定义创建单例。阅读更多:http://docs-origin.sencha.com/touch/2.3.2/#!/api/Ext.Class-cfg-statics
然后,您可以调用App.ux.MyClass.methodName()
等方法。
答案 1 :(得分:0)
我会通过创建一个包含许多类共享的所有函数的mixin
来解决问题。有关详细信息,请参阅the mixins docs。
然后你只需要打电话
this.renderMap()
在使用该mixin的任何类中。