JavaScriptで動的に作成された "a"タグのonclickイベントに関数を割り当てることを試みてきました。ループ内の関数(別の関数を返す)はどのように機能しますか?
for (var i = 0; i < 4; i++)
{
var a = document.createElement("a");
a.onclick = function() { alert(i) };
document.getElementById("foo").appendChild(a);
}
すべての4つのリンクのための警告値は常に「4」で次のようにタグのすべてがループ内に作成されます。かなり明白。グーグルとき私は、次のコードスニペットを示してポストに出くわした:
a.onclick = (function(p, d) {
return function(){ show_photo(p, d) }
})(path, description);
私は私のニーズのためにそれを微調整するために管理し、アラート(I)のものが正常に動作するようになった誰かが正確に説明することができる場合、私は感謝します上記のコードは何をしますか?
こんにちは:
私は、クロージャ(およびcurryの非常に基本的な考え方を)説明するために、次のコードを使用するには、私は簡単な例は、概念を得るために簡単に作ることができると思いますアラート "4"?それは "2"ではないでしょうか?ありがとう。 – Tarik
for(var i = 0; i <3; i ++)は、最後にi == 4を残します。 –
いいえ、私は3をそのまま残します。 –