当前位置:  开发笔记 > 编程语言 > 正文

变量"通过引用"更新?

如何解决《变量"通过引用"更新?》经验,为你挑选了1个好方法。

我有以下简单的脚本.


在浏览器中运行它将显示两个警告框:

this.a [0] = 11 this.b = 10

this.a [0] = 12 this.b = 10

问题是,为什么this.a [0]的值会增加?我正在指定"y = this.a"并将"y"的元素更新为"y [0] ++;"?

与此同时,"b"发生了同样的事情:"z = this.b; z ++".然而,"this.b"仍然等于10.

如何在不影响"this.a"的情况下更改本地范围中"y [0]"的值?

有任何想法吗?

谢谢!



1> lc...:

a是一个数组,你只是简单地复制对数组的引用y.您需要将数组a内容复制到新数组中 y(使用Array.slice()(y = a.slice()在您的情况下)是最简单的方法).

(或者,如果您只需要a[0],您可以设置y = a[0].后续更改y将不会影响a[0],因为您正在复制该值.)

请参阅"JavaScript数组分配通过参考"和"带有数组值"的部分这篇文章以获取更多信息.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有