changeArray
//为什么我的变量" c"在这段代码中有变化吗?
答案 0 :(得分:2)
第1行:您创建一个日期对象并将其引用分配给c
。
第2行:您将c
(对日期对象的引用)的值复制到d
第3行:您修改日期对象。它仍由两个变量引用。
如果您想创建一个新的日期对象并将其分配给d
,那么您需要明确地这样做。
var c = new Date(2015, 11, 25);
var d = new Date(c);
d.setFullYear(2000);
console.log(c);
console.log(d);

答案 1 :(得分:1)
变量c
没有改变。更改的是c
引用的对象,即Date实例。将c
的值分配给d
后,两个变量都会引用相同的Date实例。两个变量,一个对象。
您可以像这样制作一个Date实例的副本:
var c = new Date(2015, 11, 25);
var d = new Date(+c);
或更明确
var d = new Date(c.getTime());