[英]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=date1
, date1
和date2
都將引用同一對象。 由於它們都是對同一日期對象的引用,因此可以使用任一對象來更新或檢查對象。
這兩個變量都指向相同的日期對象。 你可以這樣做
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.