-1
JSHintと私のコードをリンティングした後、それは以下のようなループのために新しい関数を作成しないように助言を思い付いた:クロージャ - javascriptの
for (var i = 0; i < AnArray.length; i++){
// code that creates an element
(function(_i) {
element.addEventListener(
"click",
function() { DoSomething(_i); }
);
})(i);
}
のdoSomething(引数)そのArrayエンティティに関連する何かをします。私は運がないと、以下のようなコードを試してみました。
function RegisterClick (elem, i) {
elem.addEventListener(
"click",
function() { DoSomething(_i) }
)
}
for (var i = 0; i < AnArray.length; i++){
// code that creates an element
(RegisterClick (_elem, _i)) (element, i);
}
- これは私が長期的には心配すべきものですか?
- 新しい機能を作成せずにクロージャの利点を得る方法はありますか?
* "forループで新しい関数を作成しないように注意していました" *しかし、IIFEを使用してJSHintが警告する問題を回避しているので、うまくいくでしょう。 *「私は運がない、以下のようなコードを試しました」*正確にはどういう意味ですか? * "新しい関数を作成せずにクロージャの利点を得る方法はありますか?" *クロージャは関数です。機能がなければクロージャはありません。 –