iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
1
Modern Web

和少女工程師一起學 JavaScript 系列 第 10

和少女工程師一起學 JavaScript:Day10 淺拷貝、深拷貝

  • 分享至 

  • xImage
  •  

說到物件,就不能不講到物件傳參考的特性

在基本型別中都是傳值,但是物件型別是傳參考位址

var obj = {
	a:'1'
}

var obj2 = obj; //複製obj的內容到obj2,可是這兩個物件都指向相同的位址

obj2.a = '2';

console.log(obj.a, obj2.a) //2 2

為了不去更動到原本的物件,我們可以使用淺拷貝以及深拷貝

淺拷貝 Shallow copy

  • Object.assign
var name = {}
var copy = {}

copy = Object.assign({}, name)

Object.assign 會建立一個新物件,並把 name 物件內容複製到 copy 物件中,此時兩個物件位址是不同的

深拷貝 Deep copy

和淺拷貝的不同之處在於,他可以拷貝超過一層,而淺拷貝只能拷貝到第一層的內容

  • JSON.stringify(obj) 以及 JSON.parse(JSONString)
    使用 JSON.stringify 將物件轉成字串,再用 JSON.parse 將字串轉成新的物件

上一篇
和少女工程師一起學 JavaScript:Day09 物件
下一篇
和少女工程師一起學 JavaScript:Day11 函式
系列文
和少女工程師一起學 JavaScript 27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言