【发布时间】:2010-07-21 16:23:12
【问题描述】:
我正在使用 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;
注意:所有警报仅用于调试。
【问题讨论】:
-
删除警报后就不会那么混乱了。通用答案是克隆,但它只适用于普通对象,不适用于特定类型的对象。
-
仅供参考,alert 可用于非常快速的调试,但它确实限制了您的调试能力并最终减慢您的速度。您应该熟悉 F12 开发者工具窗口和
console.log/console.table。您可以输出整个对象、多个对象,并单击属性以查看发生了什么。
标签: javascript date object