私は Javascript スコープについて非常に多くのことを読み、必要な機能を作成しました。この質問を投稿して、方法/理由を 1 か所で明確にすることにしました。
私の場合、マッピング用の JavaScript ライブラリである Leaflet を使用していました。
私の最初の質問は、「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 にアクセスできないのはなぜですか?
どうもありがとう。
トム