为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯王 2019-03-20 22:19:01
查看完整描述

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}

如果发现有快照与内存最新状态不匹配的情况,那就是在快照之后发生了修改操作。


查看完整回答
反对 回复 2019-04-05
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

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

查看完整回答
反对 回复 2019-04-05
  • 3 回答
  • 0 关注
  • 576 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信