2013-12-15 34 views
0

請幫忙修復script把腳本放在單獨的模塊中

我添加了一些按鈕功能。然後試圖把所有的js代碼放在一個單獨的範圍內。也就是說,把它變成一個設計

var testModule = (function() { 
  
}) (this); 

生成的代碼已停止工作

+0

你不覺得你應該上傳工作的jsfiddle所有包含的庫? (什麼是「可觀察」?哪個FW?)?在這裏添加庫標籤。 –

+0

jsfiddle似乎並沒有爲我工作,但無論如何 我建議將jquery添加到您的腳本中,並將所有JavaScript代碼放入文檔準備好的函數中,例如'$(document).ready(function(){ //你的代碼在這裏 });' 所以是的,如果你的js代碼在移動到另一個文件之前工作,這應該工作。不要忘記添加jQuery庫。 祝你好運 – photowalker

+0

@photowalker我相信它是淘汰賽或骨幹 –

回答

0

的問題是,你不從函數返回任何東西,所以testModuleundefined

然後您嘗試訪問testModule.observable,它與undefined.observable相同,這是一個錯誤。

你也需要在你的提琴選擇jQuery的 - 由OP固定,見註釋質疑。)

0

你忘了傳遞參數!

關注此片段:

var foo = 'foo'; 


(function(fooAliasToBeUsedInsideTheClosure){ 
    console.log(fooAliasToBeUsedInsideTheClosure); 
}(foo)) 


(function(){ 
    console.log(fooAliasToBeUsedInsideTheClosure); 
}(foo)) 

打印「富」在控制檯中的第一次嘗試正常工作。但是第二次失敗,因爲在閉包中沒有與foo var相匹配的參數。然後它在代碼中考慮foo = undefined。

在你的例子中,這種情況特別極端,因爲你迫使asignment'this = undefined'。

所以,試着在第一時間解決這個問題。

0

您需要在函數的最後返回:

var testModule = (function() { 


    return { 
       observerable : observerable 
      }; 
}) (this); 
相關問題