[英]Different behavior when printing Javascript Objects in console.log
[英]Different output displayed when displaying objects through Javascript alert() and console.log()
这可能是非常基本的,但我缺少解释。 如果我警告了getBounds()方法返回的LatLngBounds,我会看到两个经纬度值,如预期的那样:((num1,num2),(num3,num4))。 显然,getBounds()方法返回一个对象。 如果我对相同的返回对象进行console.log记录,则会显示具有以下属性的对象:
ga: Dg
b: -87.73588298847653
d: -87.56422161152341
...
ta: Ig
b: 41.8883823394486
d: 41.811660656497494
...
问题: alert()是否将对象转换为字符串? 我以为不是。 湾 这些ga,ta是什么? 我本来希望有一些名称,例如sw,ne(西南和东北),然后是lat和long。 这些ga,ta,b,d名称有什么含义?
更新:我更新了标题,以删除对Google Maps API的引用,因为问题和答案对任何Javascript对象都是通用的。 碰巧我在执行Map API编码时遇到了它。 如果您想知道为什么警报输出与某些对象的console.log输出不同,那么值得尝试一下。 也看了
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
alert()
需要一个字符串。 如果您在console.log中检查bounds对象(扩展__proto__
属性),您会看到还有一个toString()
函数,该函数在alert(bounds)
上被调用。
属性ga
和ta
是边界数据的内部表示形式,边界数据已转换为sw和ne值。 直接使用/操作它们是不明智的,因为更改此内部结构时,代码可能会崩溃。
此外,如果您致电
console.log('bounds: ' + bounds);
结果将是,例如
bounds: ((-34.028249, 151.157507), (-33.80010128657071, 151.28747820854187))
因为由于字符串连接而调用bounds.toString()
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.