我花了最后两个小时试图弄清楚如何做到这一点,但没有任何工作。这是我的一些代码的简短示例。我想从函数中得到arrtime和其他几个类似的变量,所以我可以在全局使用它们。有任何想法吗?没有什么太复杂请,我不是专家(显然)。
function showTest(str) {
........
var arrayvals = JSON.parse(xmlhttp.responseText);
var arrtime= (arrayvals[0]);
}
var testvar=arrtime;
document.getElementById("testing").innerHTML=testvar;
答案 0 :(得分:7)
干净的方法是使用js-object表示法:
function showTest(str) {
//other code
return {arr: arrayvals, tm: arrtime};
}
var func_result = showTest("blah-blah");
var testvar =func_result.tm;
var testvar2=func_result.arr;
但拥有全球变量通常是一个坏主意。你为什么需要它?
使用global
对象 更新示例代码
globals = {};
function q(){
globals['a'] = 123;
globals[123] = 'qweqwe';
}
function w(){
alert(globals.a);
//alert(globals.123); //will not work
alert(globals[123]); //that's OK.
}
q();
w();
答案 1 :(得分:1)
您可以在函数之外声明变量。
var arrtime, arrayvals;
function showTest(str) {
arrayvals = JSON.parse(xmlhttp.responseText);
arrtime= (arrayvals[0]);
}
var testvar=arrtime;
alert (testvar);
答案 2 :(得分:0)
var testvar;
function showTest(str) {
........
var arrayvals = JSON.parse(xmlhttp.responseText);
var arrtime= (arrayvals[0]);
testvar = arrtime;
}
alert (testvar);
全局将在函数的分数之外声明,但在函数范围内分配。
答案 3 :(得分:0)
您只需省略var
,表示只能从功能范围访问的变量。