和Java一样,在Javascript中直接把一个对象赋值给另一个变量并不会真正地拷贝整个对象,而是仅仅把该对象的“指针”赋值给该变量。这样的设计显然是出于性能和效率上的考虑。

然而,容易被忽略的是,一些隐式的赋值操作也是遵守这个原则的,例如通过数组对象的push方法为数组添加一个新的元素。这一点可能需要特别注意。

奇怪的是Javascript似乎并不支持“真正的对象拷贝”,因而当需要进行这种拷贝的时 ...