Я прихожу на javascript с фона C. В 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;
В приведенном выше примере pnt2.x теперь равно 8 или равно 4, или он все равно равен 0?
Да, я понимаю, что я могу проверить это сам, и я буду делать это, пока я жду, пока сообщество придумает ответ. Тем не менее, я надеюсь, что ответ на мой вопрос пойдет на один шаг назад, просто отвечая на этот один пример и может пролить свет на то, как работают объекты javascript, и некоторые лучшие практики.
Следующий вопрос:
Кажется, что ответ копируется. pnt2 и pnt1 теперь указывают на одни и те же данные. Можно ли настроить мой объект так, чтобы значения были скопированы? Как это обычно выполняется в javascript? Ясно, что я не хочу каждый отдельный атрибут каждый раз, когда мне нужно копировать этот объект.