setHours()在应用于一个对象时更改两个对象的日期
setHours() changes date for two objects when applied to one
我有一个Date对象,我想创建另一个4小时后的Date对象。我写了下面的代码
eventStart = new Date();
eventEnd = eventStart;
eventEnd.setHours(eventEnd.getHours() + 4);
console.log(eventStart);
console.log(eventEnd);
两个控制台。日志上显示的日期是四小时后?
为什么setHours适用于这里的两个日期对象?有解决办法吗?
还可以参见以下JSFiddle: http://jsfiddle.net/AT3K2/
当你这么做的时候
eventEnd = eventStart;
将eventEnd
的值设置为与eventStart
相同的,即对同一对象的引用。也就是说,你没有两个对象,你有一个对象和对它的两个引用:
创建一个生命周期独立的新对象,如下所示:
eventEnd = new Date(eventStart.getTime());
此操作通常称为克隆。
相关文章:
- 正在更新mongod中两个对象内部的数组
- 添加两个对象以获取值的总和
- 如何使用javascript合并两个对象数组
- 在JavaScript中相等两个对象.在更改一时,秒会自动更改
- 如何使用AngularJs比较两个对象的JSON
- 如何在javascript中合并两个对象数组
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- Javascript如何确定两个对象是否相同
- 比较两个对象数组
- Javascript tests - 如何比较 Jasmine 中的两个对象
- JavaScript:为什么 array.push() 附加两个对象而不是一个对象
- 两个对象相等,但 js 确实说假
- 两个对象之间的Javascript原型
- 使用angularjs或javascript的两个对象数组的交集
- 合并两个对象而不覆盖
- 如何获取具有相同值的两个对象,并将其视为一个对象
- 比较两个对象数组中的重复对象,并在其'这在JavaScript中不是重复的
- 比较underscorejs中的两个对象数组
- 查找/合并具有共同属性的两个对象
- 有没有一个lodash函数可以合并两个对象并删除其中一个对象的属性(如果它们没有)'不存在于另一个中