簡體   English   中英

從 function 傳遞局部變量成為全局變量

[英]Passing local variables from a function out to become global variables

我花了過去兩個小時試圖弄清楚如何做到這一點,但沒有任何效果。 這是我的一些代碼的簡短示例。 我想從 function 中獲取 arrtime 和其他幾個類似的變量,以便我可以全局使用它們。 有任何想法嗎? 請不要太復雜,我不是專家(顯然)。

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

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

干凈的方法是使用 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 object更新示例代碼

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();

您可以在 function 之外聲明變量。

var arrtime, arrayvals;

function showTest(str) {
        arrayvals = JSON.parse(xmlhttp.responseText);
        arrtime= (arrayvals[0]);
}
var testvar=arrtime;
alert (testvar);
var testvar;
function showTest(str) {
........

        var arrayvals = JSON.parse(xmlhttp.responseText);
        var arrtime= (arrayvals[0]);
        testvar = arrtime;
}
alert (testvar);

全局將在 function 的得分之外聲明,但在 function 的 scope 內分配。

您只需省略var ,它表示一個只能從 function scope 訪問的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM