如何在 JavaScript 中克隆任何物件

在 JavaScript 領域中,我們過去經常需要做各種關於克隆的事情。 為什麼呢? 因為…引用。 基本類型(字串、數字、布林值…)總是可以正確地 “克隆”,因為它們是按值傳遞的。 其他所有物件(物件、陣列、日期等等)都是物件。而物件是按引用傳遞的。 所以,我們必須使用不同的方式進行深度克隆,否則你會得到同一個物件的引用,只是名稱不同。 但現在已經是 2023 年,我們可以使用 structuredClone()。 const b = structuredClone(a) 這將深度克隆非基本類型。 只需注意它是一個新的 API,所以如果你在瀏覽器中使用它,請確保使用提供 core-js(babel)polyfill 的建構工具。