Javascript RequireJS中的变量依赖
我使用RequireJS加载BackboneJS web应用程序的JavaScript模块,但目前我遇到了一个风格问题 我有两个类,它们共享很多代码,但它们都是不同类的子类Javascript RequireJS中的变量依赖,javascript,backbone.js,requirejs,amd,Javascript,Backbone.js,Requirejs,Amd,我使用RequireJS加载BackboneJS web应用程序的JavaScript模块,但目前我遇到了一个风格问题 我有两个类,它们共享很多代码,但它们都是不同类的子类 TemplateLessonView LessonView | | | | EditorA
TemplateLessonView LessonView
| |
| |
EditorApp <-- these share code --> MainApp
TemplateLessonView LessonView
| |
| |
EditorApp主应用程序
现在为了保持干爽,我想MainApp
扩展EditorApp
,但随后EditorApp
的依赖项被加载,并且EditorApp
通过以下格式调用它的一些基类函数:this.constructor.\uu super\uuuuuuuuuuuuuuuuuuuuupp
解决方案是在从MainApp
的模块加载模块时更改EditorApp的依赖关系(因此我需要LessonView
,但将其作为TemplateLessonView
传递给EditorApp
)
是否有人知道这样做的方法,或者有其他建议来完成我在这里尝试的工作?解决这个问题的方法是创建一个模块,您将在两个类定义中导入该模块
诸如此类:
(...require stuff ...)
return {
myfct1 : function(){
},
myfct2 : function(){
}
}
然后你可以在需要的地方导入模块,然后像调用库一样调用你的公共代码…如果他们共享代码,那么把它移动到一个mixin中,让两个对象共享它怎么样?正如Simon所建议的,你可能真的想从EditorApp和MainApp中提取公共代码,让他们共享这些代码(或者通过继承它,或者通过混合它,或者通过使用组合而不是继承。)如果没有类中的任何代码,很难说……你能发布一些吗?