2017-06-23 10 views
0

我正在使用Parse Open Source的雲代碼編寫node.js函數。然而,出於某種原因,改變一個變量的小時數會改變其他變量?!Pare雲代碼getHours()更改所有變量

var beforeTime = item.get("date") 
var afterTime = item.get("date") 
console.log("before " + beforeTime.getHours()) 
console.log("after " + afterTime.getHours()) 
original.log("original " + item.get("date").getHours()) 

/* 
All off these print out the same (i.e. 15) 
*/ 

beforeTime.setHours(beforeTime.getHours() - request.params.hours) 

console.log("before " + beforeTime.getHours()) 
console.log("after " + afterTime.getHours()) 
original.log("original " + item.get("date").getHours()) 

/* 
All off these ALSO print out the same (i.e. 14) !!!??? 
*/ 
+0

我想這是一個淺/深的複製問題。本網站上有大量線程顯示在JavaScript中進行深度複製的不同方式。 – buckettt

回答

0

beforeTime和afterTime都設置爲同一對象的實例。

嘗試var afterTime = new Date(item.get("date").toString());

+0

這將從舊日期值中創建一個全新的獨立日期對象。 –