これは変数なしで書き直すことができることを無視してください。簡単な例を示すだけです。
window.onload = function() {
var a = document.body, b = function() {console.log(1)};
a.onkeydown = b;
};
私は何が起こるか知っています:それはうまくいきます。しかし、どのように?
b
グローバル変数の場合、インタープリターはそれへの参照を保存します。この例では、ローカル変数が破棄されたときに、インタープリターはローカル変数への参照を保存し、それを関数のコピーであると想定するものに置き換えるだけですか? それとも、ローカル変数への参照はまだ舞台裏のどこかに保存されており、その後再利用されていますか?