什么是Javascript中的窗口['Map']

时间:2015-04-18 03:41:02

标签: javascript dictionary leaflet

我与窗口['地图']混淆。

我在传单地图上使用窗口['地图']来显示图层,它工作正常。

下面的

脚本:

layerUrl = 'http://service-tms.local-server.link/?token='+token+'&z={z}&x={x}&y={y}';
window['Map' + 'test'] = L.tileLayer(layerUrl, {opacity: 0.8});

我的问题是......: 在http://www.w3schools.com/jsref/obj_window.asp中,我没有找到'Map'作为窗口对象属性。 为什么呢?

“地图”是否不属于窗口对象?我在哪里找到关于窗口['Map']的参考..?

2 个答案:

答案 0 :(得分:2)

当JavaScript在浏览器中执行时,window对象是根范围。由于此window['abcd']window.abcd将引用名为abcd的全局变量。

在您的代码段中,使用window['Map' + 'test'],与window['Maptest']甚至window.Maptest相同。 Maptest可能是您脚本中的全局变量。

作为旁注,全局变量通常是一个坏主意,应该不鼓励!

答案 1 :(得分:0)

JavaScript中的Map对象似乎是实验性技术,尚未被所有主流浏览器广泛采用或支持。

有关Map

的参考,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

实验API在生产环境中使用会很危险,因为它们可能随时发生变化,或者它们在不同浏览器中的行为可能不一致。

编辑(2017年4月13日):

似乎window.Map不再标记为 experimental ,并且所有主流浏览器至少都对Map有基本支持。我不知道这个变化的日期。