首頁 >web前端 >js教程 >了解 JavaScript 物件引用和複製 - 簡要說明

了解 JavaScript 物件引用和複製 - 簡要說明

Linda Hamilton
Linda Hamilton原創
2024-12-22 02:07:21258瀏覽

Understand JavaScript Object References and Copying - Brief Explanation

在 JavaScript 中使用物件時,理解 物件引用物件複製 之間的區別至關重要。以下是詳細概述:


物件引用

  1. 物件是引用型別
    • 將物件指派給變數時,您指派的是儲存該物件的記憶體位置的引用,而不是物件本身的副本。
    • 透過一個引用修改物件會影響對同一物件的所有引用。
  1. 平等檢查
    • 如果兩個變數引用記憶體中的相同對象,則它們相等,而不是它們的內容相同。

物件複製

物件複製主要有兩種:淺複製深複製

1.淺拷貝

  • 淺拷貝建立一個新對象,但它只複製第一層屬性。嵌套物件或陣列仍然被引用,而不是重複。

淺複製技術:

  • Object.assign():

  • 擴充運算子 (...):

  • 這兩種方法都會建立淺表副本,這表示巢狀物件仍然是連結的。

2.深度複製

  • 深層複製複製整個對象,包括嵌套結構。新物件完全獨立於原始物件。

深度複製技術:

  • JSON.parse() 和 JSON.stringify():

    • 限制:此方法不處理函數、未定義、Infinity 或特殊物件(如 Date 或 RegExp)。
  • StructuredClone()(現代 JavaScript):

    • 此方法可以處理大多數邊緣情況(例如循環引用),但在較舊的環境中不受支援。
  • 自訂庫

    • 使用像lodash這樣的函式庫:

總表

Action Result
Assignment (=) Creates a reference. Changes to one variable affect the other.
Shallow Copy Creates a new object but retains references for nested objects.
Deep Copy Creates a completely independent object, including nested structures.
行動

結果

標題> 賦值(=) 建立引用。對一個變數的變更會影響另一個變數。 淺複製 建立一個新對象,但保留嵌套對象的參考。 深度複製 建立一個完全獨立的對象,包括巢狀結構。 表>
理解這些概念可以幫助您在使用 JavaScript 中的物件時避免意外的副作用!

以上是了解 JavaScript 物件引用和複製 - 簡要說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn