2013-01-04 89 views
3

第一篇文章在這裏。無法找到任何人提出這個問題,所以我必須解決這個問題。JavaScript擴展模塊模式

背景故事: 我正在寫我的第一個錢包JS帆布爲基礎的8位冒險遊戲。我寫了一個我非常滿意的概念證明,現在我想回過頭來重構我的工作,使其儘可能地乾淨,優雅和可重用。我熟悉先進的JS和設計模式,我想盡可能多地使用它們。

我在: 我有以下對象:Screen,Controls,Scene,Player,Sprite和Main 所有這些都使用Module模式,並通過requireJS加載。

現在我想製作更多的遊戲對象,用不同的行爲來擴展基礎的Sprite對象。是否甚至有可能擴展一個Module模式,以便仍然可以訪問基礎Protype的方法?

例如,我想將走路和談話行爲添加到某些模塊,這將影響其基礎更新和繪製方法。我認爲這將通過原型鏈調用每個原型方法來實現,但事實證明這比我預期的要困難得多。

任何人都有一個Decorator或Composition模式的例子,可以應用到Module模式並創建具有不同行爲的對象?

如果不行,我該怎麼辦? 我應該完全放棄模塊模式嗎?

回答

0

應該是可能的:

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

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