2
我試圖在JS中使用模塊模式。但是當我在控制檯中呼叫HM.init()
時,它表示undefined
。這就像this.carousel
根本不存在。這是爲什麼?在javascript中擴展模塊模式中的模塊
JS:
(function(window, $){
var HM = (function (HM) {
HM.init = function(){
this.carousel.init();
}
return HM;
})(HM || {});
window.HM = HM;
$(function(){
console.log(HM.init()); // this doesn't work
});
})(window, jQuery);
//Extending module (this is supposed to be in another file)
(function(window, HM, $){
HM.carousel = {
init: function(){
return 'initialise HM';
}
}
})(window, HM, jQuery);.
非常感謝
感謝Jonas的回覆。我更新了代碼,但它仍然無效。檢查代碼。 – Shaoz 2012-03-20 16:18:01
正確;問題是'HM.init'不會返回任何東西。 '在HM.init'內部返回this.carousel.init()'應該起作用,至少它對我有用。用'console.log'代替我的意思是你可以把'return'初始化HM'改成例如'console.log('初始化HM')'(假設它只是調試輸出,而你實際上並不想返回它)。對不起:P – FireFly 2012-03-20 16:21:25
再次感謝,但在這個項目中,這個代碼是所有其他模塊初始化的核心,所以每個模塊的返回都有點麻煩。例如,一個旋轉木馬模塊將被創建,以及一個標籤,手風琴等......因此,爲他們每個人做回報都很奇怪,除非我當然無能爲力。 – Shaoz 2012-03-20 16:31:03