Javascript 将函数中的var调用到函数外部

Javascript 将函数中的var调用到函数外部,javascript,Javascript,我试图在函数外部调用此变量,但结果未定义。我知道如果没有var,变量可以在全局范围内调用,但我没有定义。我还尝试在函数外部设置var并调用它,但也没有成功。这是我的简化代码谢谢:) 使用 $(document).ajaxStop(function(){} 在ajax加载之后加载变量。尝试在successfunction中添加一个返回testvar,而不是调用testvar 调用successfunction function successfunction(data){ testva

我试图在函数外部调用此变量,但结果未定义。我知道如果没有var,变量可以在全局范围内调用,但我没有定义。我还尝试在函数外部设置var并调用它,但也没有成功。这是我的简化代码谢谢:)

使用
$(document).ajaxStop(function(){}

在ajax加载之后加载变量。

尝试在successfunction中添加一个返回testvar,而不是调用testvar

调用successfunction

  function successfunction(data){
    testvar = "var";
    return testvar;
}

尝试在successfunction中添加返回testvar,而不是调用testvar

调用successfunction

  function successfunction(data){
    testvar = "var";
    return testvar;
}

它只在方法范围内可见,您必须在函数外声明它(在本例中是全局的),或者在函数调用中返回它:

var testvar2=“var 2”;
函数function1(){
//解析json
返回成功函数(“数据”);
函数成功函数(数据){
testvar2=“var glob”;
var testvar=“var ret”;
返回testvar;
}
功能失效功能(错误){
console.log(错误);
}
};
log(testvar2);
log(function1());
console.log(testvar2);

它只在方法范围内可见,您必须在函数外声明它(在本例中是全局的),或者在函数调用中返回它:

var testvar2=“var 2”;
函数function1(){
//解析json
返回成功函数(“数据”);
函数成功函数(数据){
testvar2=“var glob”;
var testvar=“var ret”;
返回testvar;
}
功能失效功能(错误){
console.log(错误);
}
};
log(testvar2);
log(function1());
console.log(testvar2);

如果需要全局范围,请将变量附加到全局对象,如
窗口

function successfunction(data){
    window.testvar = "var";
} 
到那时,你将确信它将成为全球性的



但是,您应该注意,
successfunction
是一个稍后将运行的回调:它在超时后运行&只有在ajax调用成功时才运行。

如果您希望全局范围,请将变量附加到全局对象,如
窗口

function successfunction(data){
    window.testvar = "var";
} 
到那时,你将确信它将成为全球性的



但是,您应该注意,
successfunction
是一个稍后将运行的回调:它在超时后运行&只有在ajax调用成功的情况下才会运行。

您在哪里调用
function1
?@ChristianZosel我将在
function2
中调用它来执行一些数学操作,并将其打印在div中,Where you call
function1
?@ChristianZosel我将在
function2
中调用它来执行一些数学运算,并在divI中打印它。我尝试了
控制台.log(testvar);
我得到的testvar没有定义。使用
控制台.log(windows.testvar);
我得到的是未定义的:(编辑:是的,如果我在函数中调用json,我可以从json中获取数据是的,但我没有完全理解我很抱歉我是一个初学者。啊,现在我明白了,因为获取json比运行
控制台要花更长的时间。log
我正确地获取了
未定义的
日志?有没有办法在调用ucess函数?编辑:使用
$(document).ajaxStop(function(){console.log(window.testvar);})
我尝试了
console.log(testvar);
我得到的testvar没有定义。使用
console.log(windows.testvar);
我得到的是未定义的:(编辑:是的,如果我在函数中调用json,我可以从json中获取数据是的,但我没有完全理解我很抱歉我是一个初学者。啊,现在我明白了,因为获取json比运行
控制台要花更长的时间。log
我正确地获取了
未定义的
日志?有没有办法在调用ucess函数?编辑:使用
$(document).ajaxStop(函数(){console.log(window.testvar);})
代码段说,
测试变量没有定义
,我也得到了相同的结果。我只是得到了
var 2
,请重新加载页面。是的,我很抱歉,但我正在尝试得到
var
我看到您在文档顶部声明了它,这样您无论如何都会得到正确的结果?还是有什么我看不到的?(抱歉,我正在学习)代码片段说,
test-var没有定义
,我也得到了相同的结果。我只是得到了
var 2
,请重新加载页面。是的,我很抱歉,但我正在尝试得到
var
,我看到您在文档顶部声明了它,这样您无论如何都会得到正确的结果?还是有什么我看不到的?(抱歉,我正在学习)