Shut the fuck up and write some code

グダグダ言わずにコードを書きたいブログ

CoffeeScriptでクロージャを使って関数を生成する

ループで関数を生成するとき、クロージャをうまくやらないとカウンタが回り切った状態になってしまうのでそれを回避するようにCoffeeScriptで書いてみた。何気によく使う処理なのでメモがてらソースを残しておきます。

特定のdivタグをクリックしたら、それに紐づくimgタグに画像を読み込む処理です。

      for i in [0..9]
        func=do(i)->
          return =>
            imgtag=document.getElementById("image" + i)
            imgtag.src = url[i]
            return
        document.getElementById("div" + i).addEventListener('click', func, false)


参考
JavaScriptのfor文の中で、カウンタ変数を利用する関数をジェネレートするいくつかの方法
http://taiju.hatenablog.com/entry/20091118/1258544471