簡體   English   中英

javascript setMonth()-將一個月設置為從date1開始的date2。 為什么date1也更改?

[英]javascript setMonth() - setting a month to date2 from date1. Why also date1 change?

我知道標題可能不清楚,但是我有以下代碼:

 var date1=new Date(); alert(date1); var date2=date1; alert(date2); date2.setMonth(date1.getMonth() + 6); alert(date1+" - "+date2); 

為什么date1更改? 我認為date1應該保留六個月后的當前日期和date2 ...

謝謝

日期是JavaScript中的對象。 當設置date2=date1date1date2都將引用同一對象。 由於它們都是對同一日期對象的引用,因此可以使用任一對象來更新或檢查對象。

這兩個變量都指向相同的日期對象。 你可以這樣做

var date1=new Date();
alert(date1);
var date2=new Date(date1.valueOf());
alert(date2);
date2.setMonth(date1.getMonth() + 6);
alert(date1+" - "+date2);

通過這種方法,我將使用現有對象的值創建新對象。 現在有兩個對象由不同的變量指向。

當您將相同的對象分配給兩個變量時。

因為date2獲取對date1的引用,而不是值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM