关于数组存储于赋值的问题?

为什么下面console.log打印出来不是[1,100],[10,2]。

clipboard.png

clipboard.png

阅读 2.5k
4 个回答

这样属于深拷贝吧,直接改变数组的指针指向吧。
如果用slice赋值,原数组就不会变。

这里b和a指向的是同一个对象,b[0]=10和b[1]=100都是对同一个对象的操作。

可以去查阅js的基本类型引用类型

附带参考链接 http://www.tuicool.com/articl...

新手上路,请多包涵

js在传值时,如果值是一个对象或数组时,传递的就只是地址

就是说对象a,b都指向了内存中一个存放1,2这两个值的地址,

那么对a,b的值的改变就是对内存中这两个值的改变

你先定义了a,并且赋了值,然后b=a就是把b也指向了a这两个值,b[0]跟a[1]都改变了这两个值。他们指向同一个地址。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题