[英]call var in function to outside the function
我試圖在函數外部調用此變量,但結果未定義。 我知道沒有var變量可以在全局范圍內調用,但我不確定。 我也嘗試在函數外部設置var並調用它,但也沒有成功。 這是我的簡化代碼,謝謝:)
function function1() {
$.getJSON('random.json')
.success(successfunction)
.error(failfunction);
function successfunction(data) {
testvar = (data.name);
}
function failfunction(error) {
console.log(error);
}
};
console.log(testvar);
使用$( document ).ajaxStop(function() {}
來加載ajax之后的var。
它只是在方法范圍內可見,您必須在函數外部聲明它(在這種情況下表示全局),或者在函數調用中將其返回:
var testvar2 = "var 2"; function function1() { // parse json return successfunction("data"); function successfunction(data) { testvar2 = "var glob"; var testvar = "var ret"; return testvar; } function failfunction(error) { console.log(error); } }; console.log(testvar2); console.log(function1()); console.log(testvar2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
應該避免聲明全局變量,這不是一個好習慣,請嘗試將變量的范圍定義得盡可能小。 如果任何其他js模塊還聲明了一個名為testvar2
的變量,則可能會發生有趣的事情。
嘗試在成功函數中添加返回testvar而不是調用testvar
調用成功函數
function successfunction(data){
testvar = "var";
return testvar;
}
如果要全局作用域,請將變量附加到像window
這樣的全局對象
function successfunction(data){
window.testvar = "var";
}
這樣,您將確保它成為全球性的。
但是,您應該注意, successfunction
是將在以后運行的回調:它在超時之后且僅在ajax調用成功后才運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.