使用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

相关文章
相关标签/搜索