Vengo su javascript da C background. In javascript, quando uso l'operatore di assegnazione per assegnare un oggetto a un altro, copia i valori da uno all'altro, oppure entrambi puntano agli stessi dati ?. Oppure l'operatore incaricato fa qualcosa in questo caso?Impostazione di un oggetto uguale a un altro oggetto con l'operatore di assegnazione in Javascript
function point_type()
{
this.x = 0;
this.y = 0;
}
var pnt1 = new point_type();
var pnt2 = new point_type();
pnt1.x = 4;
pnt1.y = 5;
pnt2 = pnt1;
pnt1.x = 8;
pnt2.y = 9;
Nell'esempio precedente, si fa ora pnt2.x uguale 8, o lo fa ancora uguale a 4, o lo fa ancora uguale 0?
Sì, mi rendo conto che posso testarlo da solo, e lo farò mentre aspetterò che la comunità fornisca una risposta. Tuttavia, spero che la risposta alla mia domanda faccia un passo avanti solo rispondendo a questo esempio e possa far luce su come funzionano gli oggetti javascript e alcune best practice.
Follow up domanda:
La risposta sembra essere che viene copiato il riferimento. pnt2 e pnt1 ora puntano agli stessi dati. È possibile impostare il mio oggetto in modo che i valori vengano copiati? Com'è normalmente realizzato in javascript? Chiaramente non voglio impostare ogni attributo singolarmente ogni volta che ho bisogno di copiare questo oggetto.
Un'ottima lettura su copia profonda, copia superficiale e "clone" in Javascript http://oranlooney.com/functional-javascript/ – micahwittman