1. 程式人生 > >js中的深拷貝與淺拷貝

js中的深拷貝與淺拷貝

nbsp 中一 局限性 深拷貝與淺拷貝 ext bsp post body extend

對於字符串類型,淺拷貝是對值的拷貝,對於對象來說,淺拷貝是對對象地址的拷貝,並沒有開辟新的棧,也就是拷貝的結果是兩個對象指向同一個地址,修改其中一個對象的屬性,則另一個對象的屬性也會改變,而深拷貝則是開辟新的棧,兩個對象對應兩個不同的地址,修改一個對象的屬性,不會改變另一個對象的屬性。 深拷貝的實現方法:
b = JSON.parse( JSON.stringify(a) )

這樣做的局限性:

  • 無法復制函數
  • 原型鏈沒了,對象就是object,所屬的類沒了。

另:

jquery.extend()也可以實現深拷貝。

js中的深拷貝與淺拷貝