Ustawienie jednego obiektu równego innemu obiektowi za pomocą operatora przypisania w Javascript
Idę do javascript z tła C. W javascript, gdy używam operatora przypisania do przypisywania jednego obiektu do drugiego, czy kopiuje on wartości z jednego do drugiego, czy też oba wskazują teraz te same dane ?. Czy też operator przypisania robi coś w tym przypadku?
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;
W powyższym przykładzie pnt2.x ma teraz wartość 8, czy nadal jest równy 4, czy nadal równa się 0?
Tak, zdaję sobie sprawę, że mogę to przetestować sam i będę to robił, gdy czekam na odpowiedź społeczności. Mam jednak nadzieję, że odpowiedź na moje pytanie przejdzie o krok do przodu, odpowiadając tylko na jeden przykład i może rzucić nieco światła na to, jak działają obiekty javascript i niektóre najlepsze praktyki.
Kontynuuj pytanie:
Odpowiedź wydaje się być taka, że odniesienie jest kopiowane. pnt2 i pnt1 wskazują teraz te same dane. Czy można ustawić mój obiekt tak, aby wartości były kopiowane? Jak to zwykle odbywa się w javascript? Oczywiście nie chcę ustawiać każdego atrybutu indywidualnie za każdym razem, gdy muszę skopiować ten obiekt.