私はアンカーオブジェクトにハンドラを追加するために匿名関数を使用しようとしています。なぜこのコードは匿名関数を使用して動作していません
私はこのコードを実行しますが、うまくいかない理由を説明して修正することはできますか?ありがとう:
var obj = document.getElementsByTagName("a");
var items = ["mouseover", "mouseout"];
for (var i = 0; i < items.length; i++) {
(function() {
var item = items[i];
for (var i = 0; i < obj.length; i++) {
obj[i]["on" + item] = function() {
alert("thanks for your " + item);
};
}
})();
}
期待どおりの結果と何が効果がありませんか? – ajreal
なぜあなたは無名関数を使用しますか?この場合、これはまったく意味がありません。ただそれを削除します。 – Tomalak
*有効ではありません*は有用な問題の説明ではありません。とにかく、いくつかの問題があります:ネストされたループは、同じループ変数を使用し、新しいスコープを作成せずにループ内にクロージャを作成します。 –