可以在Javascript中继承模块
Inherit module in Javascript possible?
我有这样一个模块:
var myModule= {};
(function( exports ){
init();
exports.doSomething= function(){
return "test";
};
function init(){
initSubscribers();
initListeners();
initForAdmins();//just for the admin
}
//... a lot of functions that maybe doing things depends on if user is admin or normal user
})( myModule );
我有2个网页:"正常页面"使用"myModule"为普通用户和"管理页面"使用"myModule"为管理员。
该模块的某些部分(普通用户和管理员用户)都可以使用,但有些部分是特定于用户类型的。
我想创建2个模块(myNormalModule和myAdminModule),从一般模块继承(与共享功能)。
我觉得"继承自一个模块"很奇怪。
我的generalModule必须是一个对象,也可以是一个模块
创建对象类型,然后从它们继承。你不能从模块继承。一个模块可以在自己的实现中使用另一个模块,但这不是继承。
因此,首先创建要使用的对象结构(包括适当的继承),然后将其组织到适当的模块中。而且,在将代码组织到模块中,模块可以定义对象类型,然后可以导出(例如共享)该对象类型,然后其他模块可以使用它或继承它。但是,模块本身只是一个代码组织结构,它不是一个继承结构。
所以,我建议你在担心模块之前弄清楚你的对象层次结构(包括继承),一旦设计好了,你就可以把它组织成任何合适的模块。例如,如果这个特定问题的所有对象类型几乎总是要一起使用,那么它们可能都放在一个模块中。
但是,如果这个问题的某些对象类型可能被自己使用,那么将它们分成自己的模块,以便每个模块只共享适当的部分,这可能是有意义的。
如果你有上下文,你想在模块之间共享,那么有几种不同的方法来做到这一点,这取决于它是什么以及它是如何使用的。上下文可以属于所有其他对象继承的基对象。或者,如果上下文是全局的,它可以存储在一个模块中,然后导出到想要访问它的其他模块。
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 使用外部模块继承Jade模板的好策略,在Express上
- JavaScript:访问继承子模块中的“封闭”变量
- 模块化JS和原型继承
- 如何从TypeScript编译中现有的AMD js类继承到AMD模块
- Node.js/变量和模块的继承
- 复杂的循环节点模块依赖抛出“类型错误:'继承'的超级构造函数必须有一个原型”
- 节点模块和原型继承
- 继承和依赖项注入如何与角度模块一起工作
- 在node.js中使用原型导出模块和导出继承
- 简单的javascript继承使用$.扩展和模块模式
- 可以在Javascript中继承模块
- 把握“OOP"带有继承的模块模式
- Javascript模块不可用,没有从Django模板继承的模板
- Javascript继承:用模块模式和$.extend覆盖功能
- 是否有一种方法可以访问从基本模块继承的dojo功能
- 继承和模块模式
- Node.js模块的继承
- 继承和模块模式错误行为
- Javascript 模块继承