私は絶対初心者です、そして、私はちょうどこれをで読んでいますJavaScript:良い部品。JavaScriptでループ内に関数を作成することをお勧めしないのはなぜですか?
スコープについて説明している章では、「」と記載されています。の問題を回避するために、内部関数は外部関数の実際の変数にアクセスできます。そして、次の2つの例は、次のようになります。
//悪い例
var add_the_handlers = function (nodes) {
var i;
for (i = 0; i < nodes.length; i += 1) {
nodes[i].onclick = function (e) {
alert(i);
};
}
};
// END悪い例
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);
}
};
著者によると、それはdoesnのため、2番目の例が優れています関数内でループを使用しないと、計算上無駄になる可能性があります。しかし、私は喪失しており、彼らと何をするべきか分かりません。彼の理論を実際の応用にどのように置くのですか?誰もがHTMLを組み合わせたこれら2つの例を説明できますか?
イベントが発生したときにそれを理解することが重要です....「私はあなたが望むものではありません」http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical -example – charlietfl
「2つの例がHTMLを組み合わせる」とはどういう意味ですか? –