Okay consider this bit of code:
var d1 = new Date();
var d2 = d1;
d2.setDate(d2.getDate()+1);
alert(d1 + "\n" + d2);
Even though I call setDate() on d2, d1 is also being incremented. I understand this to be because d1 is assigned to d2 by reference. My question is…how do I NOT do this, so that .setDate() only gets applied to d2?
In JavaScript, all objects are assigned to variables ‘by reference’. You need to create a copy of the object;
Datemakes it easy:This will create a new date object copying
d1‘s value.