定义一个变量: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 来输出,试试。