我从 C 背景开始使用 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中完成?显然,我不想在每次需要复制此对象时单独设置每个属性。