請幫忙修復script把腳本放在單獨的模塊中
我添加了一些按鈕功能。然後試圖把所有的js代碼放在一個單獨的範圍內。也就是說,把它變成一個設計
var testModule = (function() {
}) (this);
生成的代碼已停止工作
請幫忙修復script把腳本放在單獨的模塊中
我添加了一些按鈕功能。然後試圖把所有的js代碼放在一個單獨的範圍內。也就是說,把它變成一個設計
var testModule = (function() {
}) (this);
生成的代碼已停止工作
的問題是,你不從函數返回任何東西,所以testModule
值undefined
。
然後您嘗試訪問testModule.observable
,它與undefined.observable
相同,這是一個錯誤。
(你也需要在你的提琴選擇jQuery的 - 由OP固定,見註釋質疑。)
你忘了傳遞參數!
關注此片段:
var foo = 'foo';
(function(fooAliasToBeUsedInsideTheClosure){
console.log(fooAliasToBeUsedInsideTheClosure);
}(foo))
(function(){
console.log(fooAliasToBeUsedInsideTheClosure);
}(foo))
打印「富」在控制檯中的第一次嘗試正常工作。但是第二次失敗,因爲在閉包中沒有與foo var相匹配的參數。然後它在代碼中考慮foo = undefined。
在你的例子中,這種情況特別極端,因爲你迫使asignment'this = undefined'。
所以,試着在第一時間解決這個問題。
您需要在函數的最後返回:
var testModule = (function() {
return {
observerable : observerable
};
}) (this);
你不覺得你應該上傳工作的jsfiddle所有包含的庫? (什麼是「可觀察」?哪個FW?)?在這裏添加庫標籤。 –
jsfiddle似乎並沒有爲我工作,但無論如何 我建議將jquery添加到您的腳本中,並將所有JavaScript代碼放入文檔準備好的函數中,例如'$(document).ready(function(){ //你的代碼在這裏 });' 所以是的,如果你的js代碼在移動到另一個文件之前工作,這應該工作。不要忘記添加jQuery庫。 祝你好運 – photowalker
@photowalker我相信它是淘汰賽或骨幹 –