关于js对象(变量)定义的位置的问题

一个对象,想要插入一个字段,但是分别在插入前和插入后打印该对象,都是已经插入字段后的对象,这是为什么
`

var req = {
  reqId: reqId,
  client: client,
  key: key,
  data: data,
  version: version,
  timeStamp : timeStamp    
}
console.log('before insert,req is ',req)
req.page = {
  "count": 10,
  "currPage": 1
}
console.log('after insert, req is' ,req)

`

图片描述

图片描述

阅读 2.5k
2 个回答

图片描述
如图,原因在于 Value below was evaluated just now
如果你使用如下方式输出(req按照自己的实际情况使用):

var req = {
  reqId: 'reqId',
  client: 'client',
  key: 'key',
  data: 'data',
  version: 'version',
  timeStamp : 'timeStamp '   
}
console.log('before insert,req is ',JSON.stringify(req))
req.page = {
  "count": 10,
  "currPage": 1
}
console.log('after insert, req is' ,JSON.stringify(req))
VM241:9 before insert,req is  {"reqId":"reqId","client":"client","key":"key","data":"data","version":"version","timeStamp":"timeStamp "}
VM241:14 after insert, req is {"reqId":"reqId","client":"client","key":"key","data":"data","version":"version","timeStamp":"timeStamp ","page":{"count":10,"currPage":1}}

这是一个大家经常犯的错误,觉得console.log打印的对象就是对象在打印时的样子,不会变化。

但事实是console.log打印的就是对象本身,如果对象变化了,在console中输出的结果也会变化

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题