首頁  >  文章  >  web前端  >  JavaScript淺拷貝與深拷貝的差別

JavaScript淺拷貝與深拷貝的差別

PHP中文网
PHP中文网原創
2017-06-23 10:44:541601瀏覽

在了解什麼是淺拷貝與深拷貝之前,首先要明白JavaScript中值類型與引用類型的儲存特徵。

1. 值型別分為兩種:
基本資料型別:string、number、boolearn、undefined、null
複合資料型別:Array、Object、Function、Date、RegExp…

2. 賦值
```2.1基本資料型別賦值範例

   var num = 123;
   var num2 = num;

"
   * 值型別賦值的儲存特性, 變數內的資料全部拷貝一份, 儲存給新的變數.
   * `var num = 123` 表示變數中儲存的數字是123.
   * 然後將資料拷貝一份,就是將123 拷貝一份. 那麼記憶體中有2個資料
   * 將拷貝資料賦值給`num2`,num2的變數值改變不會影響num的變數值
   * 其特性是記憶體中有**兩個資料副本**.


"2.2複合資料型別賦值範例

var o = { name: '张三' };
var obj = o;

"
   * 賦值是將變數o 儲存的資料拷貝一份, 然後將此資料賦值給obj
   * 特點是記憶體中只有1 個數據,物件o和物件obj的name屬性值都指向同一位址。的值。說一下我理解的深拷貝與淺拷貝:

# 深拷貝與淺拷貝

1. 什麼是深拷貝, 什麼是淺拷貝

淺拷貝:*只針對目前物件的屬性進行拷貝,而噹噹前物件的屬性是引用型別時,這個不考慮。 。會影響拷貝的物件屬性。深拷貝的方法。

以上是JavaScript淺拷貝與深拷貝的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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