2
我打電話給這個函數,將結果賦給回調中的一個變量,然後記錄結果,但我一直未定義。JavaScript範圍問題
var id;
test.getID(function(result) {
id=result;
});
console.log(id);
如果我將其更改爲下面的代碼,那麼我可以看到記錄的ID。
var id;
test.getID(function(result) {
id=result;
console.log(id);
});
你知道我能做些什麼來訪問getID函數的結果嗎?
有可能是因爲你馬上登錄'id'。您傳遞給'getID'的回調函數可能在您的'console.log'之後執行*。這就是爲什麼第二個工作原理......你在回調完成後記錄它的工作。 – bejonbee
這不是關於作用域,而是關於「時間」,我想'test.getID'正在做一些異步操作,當你嘗試記錄'id'的值時,它還沒有被分配......正在工作回調,或調用一個單獨的函數,傳遞你的'結果'... – CMS
'test.getID'是否發出Ajax請求? –