使用push過程當中發現的小細節

相信你們平時開發的過程當中,常常須要對數組進行操做,說到對數組的操做,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

相關文章
相關標籤/搜索