2011-07-28 91 views
0

我需要將數據移出HTML代碼並按需加載。如何在使用Javascript或jQuery的函數中設置變量

我需要做這樣的事情:

function processData(data) 
{ 
    if (data.length===0) 
    {   
     data = get data from server using Ajax or even... 
     data = [['2011-06-01',1],['2011-06-02',3]] ; // just for educational purposes 
    } 
    else go do stuff with data ; 
} 

storeData = [] ; 
processData(storeData) ; // first time storeData doesn't contain any data 
processData(storeData) ; // now storeData contains data 

我無法弄清楚如何從函數中的東西的數據。有沒有辦法完成這個?

回答

1
function processData() 
{ 
    if (storeData.length===0) 
    {   
     storeData = get data from server using Ajax 
    } 
    else go do stuff with storeData ; 
} 

storeData = [] ; 
processData(storeData) ; // first time storeData doesn't contain any data 
processData(storeData) ; // now storeData contains data 

storeData是一個全球性的。當你指定processData(data)時,你正在做所謂的按價值傳遞。基本上你做了一份數據的副本。一旦程序退出該函數,該副本將丟失到垃圾回收。另一種方法是通過引用傳遞,但因爲它是全局的(在函數外部聲明),所以沒什麼意義。

編輯

這裏

http://snook.ca/archives/javascript/javascript_pass

0

讀這可能有助於瞭解更具體的細節,因爲它看起來像你可能會去有關在一個不尋常的方式完成任務。可能有更好的方法來完成你想要的。

你剛嘗試作爲簡單的東西:

function processData(data) 
{ 
    ... 
    return data; 
} 

storeData = [] ; 
storeData = processData(storeData) ; // first time storeData doesn't contain any data 
storeData = processData(storeData) ; // now storeData contains data 
+0

不優雅,但你可以有函數返回兩個值(2個值的數組),包含一個jPlot對象和另一包含數據。另外,這聽起來像其他約瑟夫回答你的問題有一個很好的解決方案。 – JZC

相關問題