簡體   English   中英

在javascript中刪除對另一個對象的引用

[英]Remove reference to another object in javascript

var b = {};
var a = b;
b.test = 123;
console.log(a.test);

我正在嘗試編寫與上述類似的代碼,但是為了不必描述上下文,我將改為顯示它^

a = b行之后,我想丟失從 a 到 b 的引用,因此我可以更新 b 而不會影響 a,反之亦然

這可能嗎?

您可以使用Object.assign()克隆您的對象:

var a = Object.assign({}, b);

您可以使用JSON.stringify(obj)然后JSON.parse到字符串。 所以它會是這樣的:

let obj= {
    hello: 'hello'
};
let string = JSON.stringify(obj);
let newObj = JSON.parse(string);

或者更短的單行方式:

let newObj = JSON.parse(JSON.stringify(obj))

使用Object.assign() Object.create()或擴散操作不會幫助你在對象數組(與非陣列性質,盡管作品)。

let template = {
    array: []
};
let copy = { ...template };
console.log(template.array); // As expected, results in: []
copy.array.push(123);
console.log(template.array); // Output: [123]

但是,這可以使用來解決JSON.stringify()JSON.parse() ,前面已經說了

let template = {
    array: []
};
let copy = JSON.parse(JSON.stringify(template));
console.log(template.array); // Output: []
copy.array.push(123);
console.log(template.array); // Output: [] 

想知道它是否是最合適的解決方案......如果我遺漏了什么,請原諒,我只是一個初學者。

暫無
暫無

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

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