我有一个名为联系人的对象。当我将此对象的内容记录为 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":[]}
所以我的问题是为什么我的对象的某些属性没有显示在以后的日志中,而是显示在第一个日志中?
当您通过 console.log
记录对象时,控制台中显示的值将与该调用时的值不同,而是您看到该调用时的最后一个值。这是由于将对象作为引用传递引起的。
记录 JSON 表示形式时,会记录按值传递的简单字符串,以便看到调用时的值。
所以答案是,addresss
数组可能是您期望的稍后添加的。顺便说一句,address
双s
的咒语,而不是三倍:]
顺便说一句,这同样适用于那些对象字段,这些字段也不存在于 JSON 中:internet_calls
、special_days
、websites
。