这两种的输出结果不一样
第一张图上面输出的obj里有数据,但是获取到时是undefined
代码是同步执行的,跟console本身同步异步没关系。
console.log()在控制台输出引用值时确实是当时的值,但是你点开箭头的时候它会重新获取这些引用的值。
console 是异步的,具体可以看看这个 issue ,之前有个内存泄漏的问题无意中发现的
https://github.com/nodejs/node/issues/2970
划重点 console output is buffered and async.
但是回归到题目上面来,这个地方确实是因为引用问题罢了
10 回答10.7k 阅读
7 回答10.8k 阅读
5 回答8.4k 阅读
6 回答2.6k 阅读
2 回答11.4k 阅读✓ 已解决
5 回答4.4k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
你会发现你是点击的时候才会出现值,而当你点了之后旁边还多了个 “i” 标志
控制台都告诉你了,是因为下面更改过这个对象的属性!