考虑以下代码
var pub_json_general = {"holis":["12/10/2013","12/25/2013","12/26/2013"]};
var holiday = {"holis":["12/02/2013"]};
var pub_json = pub_json_general;
pub_json.holis = $.merge(pub_json.holis,holiday.holis);
合并后,pub_json.holis的长度变为4,这是正确的。但是,当我使用firefox调试器时,我发现pub_json_general.holis也将被更改,这意味着pub_json_general和pub_json将始终相同。
那么,JavaScript中的“=”操作是否不是复制右侧并创建左侧来存储它,而是仅创建左侧,它将与右侧共享相同的存储空间?
最佳答案
是,您已经正确地解释了所有问题:)
对于引用类型,等于assignment operator将引用分配给对象,它不会克隆对象。因此,当您更改一个时,另一个也会更改。