window.onload = function() {
var a = function(x) {
console.log(x);
};
document.onclick = function() {
a(1);
};
document.onkeyup = function() {
a(2);
};
};
なぜこれが機能するのかはかなりよく理解していますが、どのように機能するのかはわかりません。
window.onload
終了すると、a
は破棄されますが、これを正しく理解していれば、より高いスコープで宣言されているため、参照されている関数は引き続きイベントハンドラーで使用できます。
インタプリタはバックグラウンドで関数への非表示の参照を保持しますか、それともインタプリタは何らかの形で関数をインライン化しますか?このタイプのコードは、グローバル変数を効率的に回避するためのものですか?ありがとう。