> currentPos = {lat: pos.coords.latitude, lng: pos.coords.longitude}; は > currentPos = new Object({lat: a, lng: b}); > というlatとlngを持ったLatLngではない別のObjectが生成された、ってことなのかな? これで理解はあってます。
> currentPos = {lat: a, lng: b}; > って構文は > currentPos変数が保持してるLatLngオブジェクトのlatにaを代入、lngにbを代入する、 > って思ってたんだけど違うのかなぁ? これは違う。分割代入の構文はまた別にある。 この構文だと新しく lat と lng を持ったオブジェクトが作られる。currentPosに入っていた物は捨てられる。 (正確に言うと参照が切れる。全てから参照が切れていればいつかGCされる)
型は無いようで有るというか、C的に言えば全部ただのオブジェクトでしかないのだけれど、 new するとコンストラクタが呼ばれ、結果的に初期値等が設定され、 さらにプロトタイプも設定される。 また、getter/setterやProxyとかで色々細かいことも出来てしまうので、 API で new しろと言われている以上 new しないと駄目。 (Webの場合はURLで引っ張っているので、対象が書き換えられたらいきなり更新される。 そのリンクだと多分バージョン固定だからこの点は大丈夫だと思うけど、 APIはAPI通り使わないと危険。)