将函数中的局部变量传递给全局变量

Pet*_*ter 2 javascript variables global local

我花了最后两个小时试图弄清楚如何做到这一点,但没有任何工作.以下是我的一些代码的简短示例.我想从函数中得到arrtime和其他几个类似的变量,所以我可以在全局使用它们.有任何想法吗?没有什么太复杂请,我不是专家(显然).

function showTest(str) {
........

        var arrayvals = JSON.parse(xmlhttp.responseText);
        var arrtime= (arrayvals[0]);
}
var testvar=arrtime;
document.getElementById("testing").innerHTML=testvar;   
Run Code Online (Sandbox Code Playgroud)

J0H*_*0HN 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;
Run Code Online (Sandbox Code Playgroud)

但拥有全球变量通常是一个坏主意.你为什么需要它?

使用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();
Run Code Online (Sandbox Code Playgroud)