onclick
事件添加到每个按钮上,该事件会弹出相应迭代的索引号:for (var i = 1; i < 6; ++i) {
var but = document.getElementById('b_' + i);
(function (el) {
var num = i;
but.onclick = function () {
alert(num);
};
})(but);
}
如您所见,在每次迭代中有一个自我调用函数,它创建了一个作用域来存储该作用域中的迭代索引。
我一直使用这种模式来附加依赖于在迭代期间更改的变量的事件。
有人能够向我解释为什么上述内容有效,以及如何在该作用域中捕获num变量吗?
此外,上面使用的自我调用函数是否被称为闭包?
})(but);
- Andreas Grech