2010-11-16 115 views
3

我有下面的代碼,但是JavaScript的變量範圍

它運行在控制檯輸出

瞬間:真
instant2:假

的變量在全球範圍內沒有被覆蓋。 如何訪問全局範圍內的變量?

var instant = false; 
$('document').ready(function(){ 
    chrome.extension.sendRequest({ 
    action: "getStorage", 
    key: "instant" 
    }, function(response) { 
    instant = true; 
    console.log('instant: ', instant); 
    }); 
    console.log('instant2: ', instant); 
}); 

回答

6

它正在被覆蓋,但稍後。直到外部函數返回後,您的function(response)纔會執行。

+0

乾杯, 你是對的。 我該如何解決這個問題? – Hailwood 2010-11-16 09:29:08

+0

這取決於你正在嘗試做什麼。如果你想要一個瞬間的本地版本,用'var'聲明它,即'var instant = true;'。 – Skilldrick 2010-11-16 09:34:43

+0

其實我只是想在這個完成後在全局範圍內使用這個變量。 – Hailwood 2010-11-16 09:37:53

0

window.instant應該爲您提供全局變量的值。

+0

未執行'instant = true'行。如果前面沒有'var',那將覆蓋全局變量。 – Skilldrick 2010-11-16 09:27:27