[英]Deleting a property on an object in the right way
var actual = { first: 1, second : 2 }
var copy = actual;
delete copy.first;
當我控制台記錄副本時,它沒有第一個屬性,但是當我控制台日志實際時,即使那個對象也沒有第一個屬性。
有人可以解釋一下這里發生了什么嗎? 以及如何避免這種情況?
預期:
actual: { first: 1, second : 2 }
Copy: { second: 2 }
PS:我知道我可以直接在復制對象上分配第二個屬性,而無需復制,這只是一個例子。 我正在處理非常大的對象。 因此,我必須復制然后刪除屬性,而不影響實際對象。
謝謝
您可以使用JSON.stringify()
, JSON.parse()
或@elclanrs建議的Object.assign()
var actual = { first: 1, second : 2 }
var copy = JSON.parse(JSON.stringify(actual));
delete copy.first;
var actual = { first: 1, second : 2 }
var copy = Object.assign({}, actual);
delete copy.first;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.