控制台输出对象,其值会实时同步(更新)?

2017-12-26 03:00:33 +08:00
 fetich
let response = {
	persons: [{
		name: 'zhangsan'
	}, {
		name: 'lisi'
	}, {
		name: 'madongmei'
	}]
}
let arrX = []
console.log(response)
console.log(arrX)
arrX = response.persons.map(person => {
	person.name = person.name.split('').reverse().join('')
	return person
})
console.log(response)
console.log(arrX)

控制台截图:
https://i.imgur.com/Wp8yjVA.png

一共输出了两次 response 变量,结果两次结果相同,arrX 变量则反之。
我想既然已输出至控制台,那输出时什么状态,接下来仍保持什么状态,就像记录在纸上一样,怎么还会自动「更新」?

1148 次点击
所在节点    问与答
5 条回复
Athrob
2017-12-26 03:48:13 +08:00
分开执行就不一样咯, 我也是才知道的
https://cnodejs.org/topic/59142d12ba8670562a40ef4d
应该是你展开那个对象时才读取对象的数据
woodensail
2017-12-26 09:13:19 +08:00
楼上说得对,所以对于可变数据,可以考虑深拷贝后再 log,或者输出字符串。
chairuosen
2017-12-26 09:38:06 +08:00
默认收起的对象打印出来只是个引用
fetich
2017-12-26 15:25:50 +08:00
@Athrob 哈哈,哪里刚刚了,都七个月前了。
Athrob
2017-12-26 18:23:04 +08:00
@fetich #4 人家七个月前发的, 我是才知道这么回事. 你不发这个贴我也不知道会是这样输出.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/417589

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX