1
我在使用date.js庫。你是如何阻止javascript通過引用分配對象的?
以前的代碼:
alert(incidentDate);
var deadlineDate = incidentDate;
deadlineDate.add(2).years();
alert(incidentDate);
return;
添加到deadlineDate
造成incidentDate
改變過。有些閱讀表明,這是因爲JavaScript中的對象總是通過引用來分配。我發現了一個解決方法(如下所示),但它開始混亂。肯定有一些更好的方法可以做到這一點?
此外,我使用的解決方法僅適用於Date對象。我將如何處理另一種對象類型?
當前代碼:
var deadlineDate;
deadlineDate = incidentDate.toString('yyyy-MM-dd');
alert(incidentDate);
alert(deadlineDate);
deadlineDate = Date.parse(deadlineDate);
alert(incidentDate);
alert(deadlineDate);
deadlineDate.add(2).years();
alert(incidentDate);
alert(deadlineDate);
return;
注:所有警報都只是進行調試。
一旦你拿出警報,這並不是那麼混亂。通用的答案是克隆,但它只適用於普通對象,不適用於特定類型的對象。 – Anurag 2010-07-21 16:26:24
[JavaScript:如何通過值傳遞對象?]的可能重複(http://stackoverflow.com/questions/7574054/javascript-how-to-pass-object-by-value) – 2014-12-30 03:35:47