[英]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.