簡體   English   中英

如何在沒有參考的情況下將對象值分配給變量

[英]how to assign object value to variable without reference

我使用Node.js,我想將A的當前值分配給變量B.當A發生更改時B的值不應更改

var A = new Date();
var B = A;
DP.setMonth(A.getMonth() - 1);
console.log(B); //get A result

我使用Node.js,我想將A的當前值分配給變量B.當A發生更改時B的值不應更改

只需更換

var B = A;

var B = new Date(A);

如果要使用A的值,但仍然希望將兩者彼此隔離,而不是需要創建一個新對象而不是簡單地引用舊對象。

您可以創建一個新的Date對象,並用A的值作為種子。

var A = new Date();
var B = new Date(A.getTime());

A.setMonth(A.getMonth() - 1);

console.log(B);

最有效的方法(在JS中克隆對象)是使用名為Lodash的第三方實用程序庫。

使用lodash,您可以使用以下函數簡單地克隆或深度克隆(對於嵌套對象): _.clone()_cloneDeep()

通過npm install --save lodash安裝Lodash

var _ = require(lodash)
var A = new Date();
var B = _.cloneDeep(A);
DP.setMonth(A.getMonth() - 1);
console.log(B);// B will not change

您可以使用這些方法來克隆大多數JS對象。 Lodash已針對性能進行了高度優化,因此使用Lodash比手動克隆每個鍵更好。 Lodash還提供了其他非常有用的功能。

暫無
暫無

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

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