我想使用閉包同時存儲和檢索變量。使用閉包存儲和檢索數據
我使用JSONP
和回調函數
http://freegeoip.net/json/?callback=geoIPInfo
封閉
function geoIPInfo(newGeoData) {
var geoInfo;
if (newGeoData) {
geoInfo = newGeoData;
}
var provideGeoData = function() {
return geoInfo;
};
return provideGeoData();
}
我想先存儲數據,比獲取最後使用簡單的通話一樣,保存從封閉數據
geoIPInfo()
如果提供參數,它將設置新的信息,否則它將返回現有的信息。
但在我的情況下,數據設置成功,但是當我試圖讓一組數據,我得到undefined
$("#super_button").click(function (e) {
alert(geoIPInfo());
e.preventDefault();
});
什麼是錯我的理解封? 請解釋。
謝謝。
什麼是錯誤的是,每次你調用geoIPInfo你創建一個新的閉包,你需要的函數返回函數對象,而不是函數調用,並使用該函數對象作爲常規函數 – nottu