我正在使用date.js库。
先前的代码:
alert(incidentDate);
var deadlineDate = incidentDate;
deadlineDate.add(2).years();
alert(incidentDate);
return;
添加到
deadlineDate
也会导致incidentDate
更改。一些阅读显示这是因为javascript中的对象总是按引用分配。我找到了一种解决方法(如下),但是它杂乱无章。当然必须有一些更整洁的方法吗?此外,我使用的解决方法仅适用于Date对象。我将如何处理其他对象类型?
当前代码:
var deadlineDate;
deadlineDate = incidentDate.toString('yyyy-MM-dd');
alert(incidentDate);
alert(deadlineDate);
deadlineDate = Date.parse(deadlineDate);
alert(incidentDate);
alert(deadlineDate);
deadlineDate.add(2).years();
alert(incidentDate);
alert(deadlineDate);
return;
注意:所有警报仅用于调试。
最佳答案
正如Anurag所说,唯一的通用解决方案是cloning。但是,有一种更好的方法来编写您的解决方法。使用毫秒值创建一个新的日期,而不是格式化一个字符串然后对其进行解析。