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