相信你們平時開發的過程當中,常常須要對數組進行操做,說到對數組的操做,push仍是出場率很高的。數組
今天本人在使用push的過程當中,由於對這個方法的理解不夠深,致使開發過程當中出現了小小的困擾。這裏先給你們舉個例子:.net
var obj = {name: 'han'}; var arr = []; arr.push(obj) arr.push(obj) arr.push(obj) arr.push(obj) obj.name = 'liu'
在這裏,咱們往一個空數組 arr 裏面添加了三個對象,而後將 obj 對象進行了改動,大家猜數組的變化是怎麼樣的?有沒有收到其影響?指針
既然都這麼問了,想都不用想,確定發生變化了唄,果真:code
// 果真,控制返回的結果是: [(4) [{…}, {…}, {…}, {…}] {name: "liu"} {name: "liu"} {name: "liu"} {name: "liu"}]
從這裏看出了, push 進去的對象,至關於等於號 '=' 的過程,對於對象,只是複製其指針地址,並非真正意義上的複製,因此這裏多個對象實際上是指向同一個地址的。因而乎才產生這種狀況。對象
在這裏小小的分享了一些開發過程當中的一些坑,和解決他們以後的收穫,更多文章請轉到此處 點我哦!blog