2014-02-19 48 views
2

這可能是非常基本的,但我錯過了一個解釋。如果我提醒getBounds()方法返回的LatLngBounds,我會看到兩個經緯度值:((num1,num2),(num3,num4))。很明顯,getBounds()方法返回一個對象。如果我做同樣的返回對象的的console.log,我得到物體相如屬性顯示:通過Javascript alert()和console.log()顯示對象時顯示不同的輸出

ga: Dg 
    b: -87.73588298847653 
    d: -87.56422161152341 
... 
ta: Ig 
    b: 41.8883823394486 
    d: 41.811660656497494 
... 

問題: 一個。 alert()是否將對象轉換爲字符串?我不這麼想。 b。這些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

回答

3

alert()需要一個字符串。如果您檢查console.log中的邊界對象(展開__proto__屬性),您將看到也有功能toString(),它在alert(bounds)上調用。

屬性gata是轉換爲sw和ne值的邊界數據的內部表示。直接使用/操作它們並不明智,因爲當內部結構發生更改時,代碼可能會崩潰。

此外,如果你調用

console.log('bounds: ' + bounds); 

的結果將是,例如

bounds: ((-34.028249, 151.157507), (-33.80010128657071, 151.28747820854187)) 

因爲bounds.toString()方法被調用由於字符串連接。

+0

謝謝......明白了!!!已接受並向上投票。 – Sam