如图为函数中的一段代码,countData为全局变量,结构大概如下
countData:{[message:[
{time: "2018-08-03"},
{time: "2018-08-03"}
]
],
[photo:[
{time: "2018-08-03"},
{time: "2018-08-07"},
{time: "2018-08-07"},
{time: "2018-08-07"}
]
]}
第一张图代码执行后,得到的处理后的listData,而全局变量countData不等于起始的countData
第二张图代码执行后,得到的处理后的listData,全局变量countData还是原来的值,这个是理想的结果。
已经把全局变量赋给了新的变量,并没有直接修改全局变量,为什么第一张图的代码会对全局变量有影响?
“已经把全局变量赋给了新的变量”,那个全局变量指向的是一个对象,是个地址引用。 当你把countData赋值给listData后,他们两个指向同一个地址,故只要listData有改动,countData也一定变化。