如何使用Javascript或jQuery在函数中设置变量

如何使用Javascript或jQuery在函数中设置变量,javascript,jquery,Javascript,Jquery,我需要将数据从HTML代码中移出并按需加载 我需要这样做: 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 } e

我需要将数据从HTML代码中移出并按需加载

我需要这样做:

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
我不知道如何从函数中填充数据。有没有办法做到这一点

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)
时,您正在执行所谓的传递值。基本上,你需要复制数据。一旦程序退出该函数,副本将丢失到垃圾回收中。另一种方法是通过引用传递,但因为它是全局的(在函数外部声明),所以没有什么意义

编辑 读这里


了解更多具体细节可能会有所帮助,因为你可能会以一种不同寻常的方式完成任务。也许有更好的方法来实现你想要的

您是否尝试过以下简单的方法:

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

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

不是很优雅,但是您可以让函数返回两个值(一个由2个值组成的数组),一个包含jPlot对象,另一个包含数据。另外,听起来回答你问题的另一个约瑟夫有一个很好的解决方案。