3 回答
DIEA
TA贡献1820条经验 获得超2个赞
console.log 输出调用此语句时参数的快照,展开(即 console.dir)时输出的是参数在内存中最新的状态。
var b = {a: 0};
[1, 2, 3].forEach(i => [b.a = i, console.log(b), console.dir(b)])
// {a: 1} 展开后为 {a: 3}
// Object 展开后为 {a: 3}
// {a: 2} 展开后为 {a: 3}
// Object 展开后为 {a: 3}
// {a: 3} 展开后为 {a: 3}
// Object 展开后为 {a: 3}
如果发现有快照与内存最新状态不匹配的情况,那就是在快照之后发生了修改操作。
白猪掌柜的
TA贡献1893条经验 获得超10个赞
之所以不一致,是因为你的赋值是在 输出(赋值前) 到 展开(赋值后) 的这个时间段里。
也就是说,你输出的时候amout还是null,然后你才给它赋值为1
添加回答
举报
0/150
提交
取消