是google maps JS库polyfilling符号

时间:2018-01-31 00:55:19

标签: google-maps google-maps-api-3 ecmascript-6 polyfills

我有一个应用程序,其中有一个脚本标记,可以在Google地图javascript库中提取。

<script src="https://maps.googleapis.com/maps/api/js?
v=3.exp&libraries=geometry&client=MY_CLIENT"></script>

我试图拉出脚本标签,因为我不再需要它,并且在旧版本的chrome(chrome 30)上运行时,注意到非地图相关代码中的奇怪行为。

我的代码是检查es6符号是否用作对象上的键

//mySymbol = Sybmol('whatever');
//...

if(mySymbol in obj){ //always returns true in old browsers without google maps loaded
  //do something
}

在我删除google地图脚本标记之前,这是正常运行的。但是,在我删除脚本后,in运算符开始为每个符号返回true(即使它没有在对象上使用)。我能够通过将脚本标记添加回我的index.html并刷新页面来始终如一地切换行为。

var foo = Symbol('foo')
var obj = {}
foo in obj //true if google maps is not loaded. false otherwise

此行为与herehere所述的polyfill限制一致。但令我困惑的是为什么我在谷歌地图的文档中找不到这个polyfill的任何文档,以及为什么他们能够绕过polyfill限制。这是谷歌地图的js代码的已知特征/行为吗?

0 个答案:

没有答案