JavaScript扩展模块模式

3

首次发布帖子。找不到任何人问同样的问题,所以我一定走错了。

背景: 我正在编写我的第一个基于JS画布的8位冒险游戏。我编写了一个概念验证,我非常满意,现在我想回去重构我的工作,使其尽可能干净,优雅和可重用。我熟悉高级JS和设计模式,并希望尽可能地利用它们。

我所在的位置: 我有以下对象:屏幕,控件,场景,播放器,精灵和主要的,所有这些都使用模块模式,并通过requireJS加载。

现在,我想创建更多的游戏对象,这些对象使用不同的行为扩展基本精灵对象。是否可能扩展模块模式以便仍然可以访问底层原型的方法?

例如,我想将步行和交谈行为添加到某些模块中,这会影响它们的底层更新和绘制方法。我认为通过原型链调用每个原型的方法是基本的,但事实证明比我预期的更困难。

任何人都有装饰器或组合模式的示例,可以应用于模块模式并创建具有不同行为的对象吗?

如果不可能,我该怎么做? 我应该放弃模块模式吗?

1个回答

0

应该是可能的:

define('mod1', function() {
   ...
});

define('mod2', ['mod1'] function(Mod1) {
   Mod1.prototype.newFunction = function() {
   ...
   };
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接