这似乎是2个问题:
step1. 块级作用域内定义函数,相当于使用var
定义一个函数
阮一峰 es6 中有提及
那么代码可以看成
var onclick = function (e) {
document.write(222)
}
for (var i = 0; i < 3; i++) {
}
step2. var
定义变量相当于在添加全局属性(window.x
)
那么,就得到如下代码
window.onclick = function (e) {
document.write(222)
}
for (var i = 0; i < 3; i++) {
}
显而易见,这个就是给window绑定事件了
应该就是这2个原因了
ps: 我查了下window.x
与var x
的区别
@scort 提及,唯一的确保在于configurable
属性,这就是为什么var
定义的变量使用delete window.x
删除
MDN对configurable
的描述
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…