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