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

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

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

https://img.mukewang.com/5bcc3cb90001ccf902970068.jpg

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

https://img1.mukewang.com/5bcc3cc10001b71a03000064.jpg

我觉得很郁闷的是:为什么第一次打印 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']);


潇潇雨雨
浏览 1322回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript