Я перехожу к 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? Ясно, что я не хочу устанавливать каждый атрибут отдельно каждый раз, когда мне нужно скопировать этот объект.