[英]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.