我遇到了以下問題:爲什麼封閉值會丟失?
function Parent(value) {
var callback = function() {
console.log(value);
//actually the following line was found in the code
var value; //<- hoisting, takes effect first
}
callback();
}
Parent(); //undefined
Parent('Wow!'); //undefined, closure value was lost?!
兩個上級呼叫記錄「未定義」的消息,但我真的希望看到「哇!」第二次通話的價值。
問題都可以在這裏重現:http://jsfiddle.net/5tgsj37e/3/
相關問題:Why does this closure-scoped variable lose its value?
爲什麼你有'console.log('value');'?這不會每次都記錄「價值」嗎?它在控制檯中是「未定義的」嗎?而且,正如@charlietfl所說,「url」沒有定義,所以AJAX可能根本不起作用。這是你的完整代碼嗎? –
哪裏定義了「url」?另外'Parent()'不會返回任何東西,所以它沒有意外的記錄未定義。你到底想要在這裏發生什麼? – charlietfl
已更新var url = anyUrl;和console.log(value); – Spirit