gpt4 book ai didi

javascript - setHours() 在应用于一个对象时更改两个对象的日期

转载 作者:行者123 更新时间:2023-11-30 08:03:20 26 4
gpt4 key购买 nike

我有一个 Date 对象,我想创建另一个四小时后的 Date 对象。我写了下面的代码

eventStart = new Date();

eventEnd = eventStart;
eventEnd.setHours(eventEnd.getHours() + 4);

console.log(eventStart);
console.log(eventEnd);

两个 console.logs 在四个小时后给出相同的日期?

这里为什么setHours适用于两个日期对象?有解决方法吗?

另请参阅以下 JSFiddle:http://jsfiddle.net/AT3K2/

最佳答案

当你这样做的时候

eventEnd = eventStart;

您将 eventEnd 的值设置为与 eventStart 相同,即对同一个对象。也就是说,您没有两个对象,您有一个一个对象和两个对它的引用:

+---------------------+| eventStart variable |---\+---------------------+   |    +------------------------+                          +--->| the actual Date object |+---------------------+   |    +------------------------+| eventEnd variable   |---/+---------------------+

To create a new object whose life will be independant, do this :

eventEnd = new Date(eventStart.getTime());

此操作通常称为克隆。

关于javascript - setHours() 在应用于一个对象时更改两个对象的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com