我已经阅读了很多关于 Javascript 范围的内容,并且已经产生了我想要的功能 - 我想我会发布这个问题以在一个地方澄清如何/为什么。
就我而言,我使用的是 Leaflet——一个用于映射的 javascript 库。
我的第一个问题是“L”是什么。
因此,例如,我可以使用以下代码:
current_map = L.map(map_id);
L 代表什么,为什么我可以“通过”它访问功能?
其次,在我的网站上,我有多个不同的地图共享一些通用代码,例如设置地图。
因此,我想开发一些“通用代码”来设置地图并添加标记。
所以我在map_global.js中写了如下代码:
var current_map;
window.setup_map = function(map_id)
{
if ($("#"+map_id)[0])
{
$("#"+map_id).show();
current_map = L.map(map_id);
}
}
然后在我的 map_individual.js 文件中,我简单地写:
map_setup('map_div');
我的地图已经设置好了。
我可以这样做,因为通过在定义函数名称中使用 window 我将函数设置在全局范围内。同样,通过在任何函数之外设置变量 current_map 它也是全局的吗?
这是实现此功能的有效/安全/合理的方式吗?
最后,为什么我不能访问 map_individual.js 中的 current_map?
非常感谢。
汤姆