<分区>
我是一个绝对的新手,我刚刚在 JavaScript: The Good Parts 中读到这篇文章。
在讨论作用域的章节中,它说“重要的是要理解内部函数可以访问外部函数的实际变量而不是复制以避免以下问题。 “然后下面的两个例子看起来像这样:
//不好的例子
var add_the_handlers = function (nodes) {
var i;
for (i = 0; i < nodes.length; i += 1) {
nodes[i].onclick = function (e) {
alert(i);
};
}
};
//结束坏例子
var add_the_handlers = function (nodes) {
var helper = function (i) {
return function (e) {
alert(i);
};
};
var i;
for (i = 0; i < nodes.length; i += 1) {
modes[i].onclick = helper(i);
}
};
根据作者的说法,第二个示例更好,因为它没有在函数内部使用循环,否则会造成计算上的浪费。但我不知所措,不知道如何处理它们。我如何将他的理论付诸实际应用?任何人都可以说明这两个示例结合 HTML 吗?