猿问

object展开后不一致,拿不到展开后的值

慕斯王
浏览 577回答 3
3回答

DIEA

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}如果发现有快照与内存最新状态不匹配的情况,那就是在快照之后发生了修改操作。

白猪掌柜的

之所以不一致,是因为你的赋值是在 输出(赋值前) 到 展开(赋值后) 的这个时间段里。也就是说,你输出的时候amout还是null,然后你才给它赋值为1
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答