window.onload = function() {
var a = function(x) {
console.log(x);
};
document.onclick = function() {
a(1);
};
document.onkeyup = function() {
a(2);
};
};
我很清楚为什么会这样,但不知道如何。
当window.onload
ends ,a
被销毁,但它引用的函数仍然可供事件处理程序使用,因为如果我理解正确的话,它是在更高的范围内声明的。
解释器是否在后台保留对该函数的隐藏引用,或者解释器是否以某种方式内联该函数?这种避免全局变量的代码是否有效?谢谢。