我与窗口['地图']混淆。
我在传单地图上使用窗口['地图']来显示图层,它工作正常。
下面的脚本:
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']的参考..?
答案 0 :(得分:2)
当JavaScript在浏览器中执行时,window
对象是根范围。由于此window['abcd']
或window.abcd
将引用名为abcd
的全局变量。
在您的代码段中,使用window['Map' + 'test']
,与window['Maptest']
甚至window.Maptest
相同。 Maptest
可能是您脚本中的全局变量。
作为旁注,全局变量通常是一个坏主意,应该不鼓励!
答案 1 :(得分:0)
JavaScript中的Map
对象似乎是实验性技术,尚未被所有主流浏览器广泛采用或支持。
有关Map
实验API在生产环境中使用会很危险,因为它们可能随时发生变化,或者它们在不同浏览器中的行为可能不一致。
编辑(2017年4月13日):
似乎window.Map
不再标记为 experimental ,并且所有主流浏览器至少都对Map
有基本支持。我不知道这个变化的日期。