简体   繁体   中英

How do I set a variable in a function using Javascript or jQuery

I need to move the data out of HTML code and load it on demand.

I need to do something like this:

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

I can't figure out how to stuff the data from within the function. Is there a way of accomplishing this?

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 is a global anyway. When you specify processData( data ) you are doing what's called a pass by value. Basically your making a copy of the data. Once the program exits the function, the copy is lost to garbage collection. An alternative would be to pass by reference, but because it's a global anyway (declared outside the function) there's little point.

Edit

read here

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

It might help to know more concrete details since it seems like you might be going about your task in an unusual way. There may be a better way of accomplishing what you want.

Have you just tried something as simple as:

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM