Javascript 未捕获类型错误:无法读取属性';x';未定义的common.js的

Javascript 未捕获类型错误:无法读取属性';x';未定义的common.js的,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我正在使用google map api v3,在使用 map.fitbunds(边界)函数 这是控制台上的错误快照 代码如下: var arr = [{lat: -25.363, lng: 131.044}, {lat: 12.97, lng: 77.59}]; for (i = 0; i < arr.length; i++) { bounds.extend(new google.maps.LatLng(arr[i])); } map.fitBounds(bounds); //I

我正在使用google map api v3,在使用

map.fitbunds(边界)函数

这是控制台上的错误快照

代码如下:

var arr = [{lat: -25.363, lng: 131.044}, {lat: 12.97, lng: 77.59}];
for (i = 0; i < arr.length; i++) {
    bounds.extend(new google.maps.LatLng(arr[i]));
}
map.fitBounds(bounds); //If I comment this line in m code, the error is gone but map does not load.
var-arr=[{lat:-25.363,lng:131.044},{lat:12.97,lng:77.59}];
对于(i=0;i
有什么问题?还有我该如何解决它呢?

该方法还没有将对象作为参数

扩展(点:LatLng)|返回值:LatLngBounds

扩展此边界以包含给定点

将它们转换为对象


该方法尚未将对象作为参数

扩展(点:LatLng)|返回值:LatLngBounds

扩展此边界以包含给定点

将它们转换为对象


我猜在代码的某个地方有一个
self=this
,前面没有
var
声明

当您忘记
var
时,您正在创建一个全局变量——或者在本例中,将全局
self
重新定义为本地函数。这将导致Google Maps代码出现故障,该代码预期
self
Window
,并导致
Uncaught类型错误:无法读取未定义(…)的属性“x”

这种错误就是为什么一些开发人员喜欢使用
that
或其他术语而不是
self
来进行范围控制。如果你是一个非常细心的编码员,并且永远不会忘记你的
var
声明,你会很好的。但对于我们当中那些偶尔出错的人来说,使用
可以节省数小时令人沮丧的调试。*


*那些非常细心的程序员会说,我们值得花几个小时进行令人沮丧的调试,因为我们太粗心了:)

我猜在代码中的某个地方有一个
self=this
,前面没有
var
声明

当您忘记
var
时,您正在创建一个全局变量——或者在本例中,将全局
self
重新定义为本地函数。这将导致Google Maps代码出现故障,该代码预期
self
Window
,并导致
Uncaught类型错误:无法读取未定义(…)的属性“x”

这种错误就是为什么一些开发人员喜欢使用
that
或其他术语而不是
self
来进行范围控制。如果你是一个非常细心的编码员,并且永远不会忘记你的
var
声明,你会很好的。但对于我们当中那些偶尔出错的人来说,使用
可以节省数小时令人沮丧的调试。*



*那些非常细心的程序员会说,我们值得花几个小时进行令人沮丧的调试,因为我们太粗心了:)

显示您的全部代码请现在查看代码。您的代码是否采用onload方法?请提供一个示例来说明问题。您在哪里创建
地图
?您在何处创建
边界
?显示整个代码的可能副本请立即查看代码..您的代码是否在onload方法中?请提供一个示例来说明此问题。您在哪里创建
地图
?您在哪里创建
边界
?可能重复感谢您的小提琴。一个完美的解决方案,但解决方案不起作用。你也有同样的错误吗?请提供一个例子,说明你的问题中的问题。是的,我也有同样的错误。你提供的小提琴是我正在使用的完美代码。你能告诉我还有什么问题吗?谢谢你的帮忙。一个完美的解决方案,但解决方案不起作用。你也有同样的错误吗?请提供一个例子,说明你的问题中的问题。是的,我也有同样的错误。你提供的小提琴是我正在使用的完美代码。你能建议还有什么问题吗?在我的例子中,transpiler为我做了
self=this
(使用ecma6)。这个答案真的救了我一天,谢谢。如果你不知道那个“自我”是谁,只需在错误中加一个断点,然后在chrome控制台中键入“自我”。伙计!你刚刚救了我一天!谢谢在我的例子中,transpiler为我做了
self=this
(使用ecma6)。这个答案真的救了我一天,谢谢。如果你不知道那个“自我”是谁,只需在错误中加一个断点,然后在chrome控制台中键入“自我”。伙计!你刚刚救了我一天!谢谢
var bounds = new google.maps.LatLngBounds();
var arr = [{lat: -25.363,lng: 131.044}, {lat: 12.97,lng: 77.59}];
for (i = 0; i < arr.length; i++) {
  bounds.extend(new google.maps.LatLng(arr[i].lat, arr[i].lng));
}
map.fitBounds(bounds);