我有一个名为contact的对象。当我将此对象的内容记录为console.log(contact)
时,我得到以下内容
addresss:[]
company:""
emails:[]
id:3
internet_calls:[]
lat:"10.115730000000001"
lng:"76.461445"
name:"Diji "
phones:[]
special_days:[]
timestamp:1508919658000
title:"Mr"
websites:[]
__proto__:Object
但是当我尝试按console.log(contact.addresss.length)
记录地址长度字段时,我得到undefined
当我将对象记录为console.log(JSON.stringify(contact))
时,我得到以下结果
{"id":3,"title":"Mr","name":"Diji ","company":"","lat":"10.115730000000001","lng":"76.461445","timestamp":1508919658000,"phones":[],"emails":[]}
所以我的问题是为什么我的对象的某些属性在以后的日志中没有显示但是出现在第一个日志中?
答案 0 :(得分:1)
当您通过console.log
记录对象时,控制台中显示的值将与该呼叫的时间不同,而是在您看到它时的最后一个值。这是由传递对象作为参考引起的。
当您记录JSON表示时,您记录了由值传递的简单字符串,因此您可以看到调用时的值。
所以答案是,addresss
数组可能会在您预期的时间后添加。顺便说一下address
法术加倍s
,而不是三倍:]
同样适用于那些在JSON中也不存在的对象字段:internet_calls
,special_days
,websites
。