我正在嘗試在小項目中實現一些常見的JS概念 以更好地理解如何使用它們。將模塊模式與閉包結合的最佳方式
我一直在做一個簡單的遊戲,試圖 理解和使用模塊模式和關閉。 我使用Stoyan Stefanov的'模式' 書中的模塊模式。
我很努力去理解如何最好地將模塊和 關閉。
我想知道如果我以 明智的方式組織下面的代碼?如果是這樣,我的問題是: 修改代碼的最佳方法是什麼,以便在$(function(){})
我有 訪問update()
函數?
MYAPP.utilities = (function() {
return {
fn1: function(lives) {
//do stuff
}
}
})();
MYAPP.game = (function() {
//dependencies
utils = MYAPP.utilities
return {
startGame: function() {
//initialisation code
//game state, stored in closure
var lives = 3;
var victoryPoints = 0;
function update(){
utils.fn1(lives);
//do other stuff
}
}
}
})();
$(function(){
MYAPP.game.startGame();
//Want to do this, but it won't work
//because I don't have access to update
$('#button').on('click',MYAPP.game.update)
});
我已經想出了幾個這將工作的選擇,但我 想知道,如果他們是很好的做法,最好的選擇 什麼。
選項:
(1)綁定$('#button').on('click', ...)
作爲 startGame初始化代碼的一部分。
(2)指定update()
函數的變量, 回報從startGame功能這個變量,所以在 $(function(){})
我們能有 updatefn = MYAPP.game.startGame();
然後
(3)?有沒有更好的辦法?
非常感謝您的幫助,
羅賓
謝謝你明確的答案。 – RobinL 2013-04-28 08:19:28