V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fetich
V2EX  ›  问与答

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

  •  
  •   fetich · 2017-12-26 03:00:33 +08:00 · 1193 次点击
    这是一个创建于 2558 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 变量则反之。
    我想既然已输出至控制台,那输出时什么状态,接下来仍保持什么状态,就像记录在纸上一样,怎么还会自动「更新」?

    5 条回复    2017-12-26 18:23:04 +08:00
    Athrob
        1
    Athrob  
       2017-12-26 03:48:13 +08:00   ❤️ 1
    分开执行就不一样咯, 我也是才知道的
    https://cnodejs.org/topic/59142d12ba8670562a40ef4d
    应该是你展开那个对象时才读取对象的数据
    woodensail
        2
    woodensail  
       2017-12-26 09:13:19 +08:00   ❤️ 1
    楼上说得对,所以对于可变数据,可以考虑深拷贝后再 log,或者输出字符串。
    chairuosen
        3
    chairuosen  
       2017-12-26 09:38:06 +08:00   ❤️ 1
    默认收起的对象打印出来只是个引用
    fetich
        4
    fetich  
    OP
       2017-12-26 15:25:50 +08:00
    @Athrob 哈哈,哪里刚刚了,都七个月前了。
    Athrob
        5
    Athrob  
       2017-12-26 18:23:04 +08:00
    @fetich #4 人家七个月前发的, 我是才知道这么回事. 你不发这个贴我也不知道会是这样输出.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5360 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:58 · PVG 13:58 · LAX 21:58 · JFK 00:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.