2012-03-31 9 views
1

Ich hoffe, jemand kann dies für mich klären.Js Variable Referenz Quickie

Sagen wir, ich habe 2 Globals: var myarray = [1,3,5,7,9], halten;

und dann das ich tun:

function setup() 
{ 
alert (myarray[0]);//shows 1 
hold=myarray; 
alert (hold);//appears to show 'hold' containing all the values of myarray. first number shown is 1 
myarray[0]=2; 
alert (hold);//shows the values of myarray with the updated first entry. first numbe shown is 2 
} 

Bin ich es zu nehmen, dass ‚Hold‘ einfach hält eine Referenz auf myarray, anstatt tatsächlich alle Werte zu nehmen?

Antwort

4

Soll ich sagen, dass "halten" einfach einen Verweis auf myarray enthält, anstatt alle Werte zu übernehmen?

Nicht ganz, beide hold und myarray sind Verweise auf das gleiche Array.

Mehr oder weniger alles in JS ist eine Referenz (auch var foo = "bar" erstellt einen Verweis auf eine unveränderliche Zeichenfolge).