谷歌的控制台
展开后x,y发生了变化,for in出来的x,y是展开前的值,for of不执行
对象的来源---经过d3.forceSimulation处理后nodes里面的对象
d3.forceSimulation(nodes)
.force('link',d3.forceLink(links))
.force('charge',d3.forceManyBody)
.force('center',d3.forceCenter(200,200))
谷歌的控制台
展开后x,y发生了变化,for in出来的x,y是展开前的值,for of不执行
d3.forceSimulation(nodes)
.force('link',d3.forceLink(links))
.force('charge',d3.forceManyBody)
.force('center',d3.forceCenter(200,200))
一个是打印的时候生成的快照,展开的时候拿的是内存,由于是引用类型,所以你修改了之后浏览器拿的是你修改之后的值,这个是chrome调试器的机制问题。所以要打印当前引用类似,建议使用qs或者json转成字符串
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答843 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
展开前是你

console.log
时的值的快照,因为Object
是引用类型,展开之后会去读取内存中最新的值,对象被修改了出现前后值不一样是正常现象