javascript - 在修改js对象中的属性(也是一个对象)的时候出现的怪异现象是怎么回事??

查看:110
本文介绍了javascript - 在修改js对象中的属性(也是一个对象)的时候出现的怪异现象是怎么回事??的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

定义一个变量:var test= {obj: {one: 'nihao'}}

打印输出: console.log(test , '直接输出值:' + test['obj']['one']); 显示如下:

修改变量后 test['obj']['one'] = 'yueshu' , 再次打印输出:console.log(test , '直接输出值:' + test['obj']['one']) 显示如下:

我觉得很郁闷的是:为什么第一次打印 test对象 的时候,test['obj']['one'] 的值竟然是修改后的值,要知道修改是在打印之后发生的事啊!而且直接打印 test['obj']['one'] 反倒是修改之前的值!

这个现象怎么是什么原因导致的??

完整打印打码:

    var test = {obj: {one: 'nihao'}};
    console.log(test , '直接输出值:' + test['obj']['one']);
    test['obj']['one'] = 'yueshu';
    console.log(test ,  '直接输出值:' + test['obj']['one']);

解决方案

有可能是,开发者工具在那里记了一个对象,当你点开三角的时候才去加载的属性……所以就这样了。
如果你想显示当时的信息,可以考虑用 JSON.stringify(obj) 把对象处理成 JSON 来输出,试试。

这篇关于javascript - 在修改js对象中的属性(也是一个对象)的时候出现的怪异现象是怎么回事??的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆