二〇一六年 卯月 九日 土曜日■ CoffeeScript で即時関数を書く方法まとめ [/links]この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。 JavaScript には、即時関数とか即時実行関数とか呼ばれるパターンがある。こんなの。
関数を定義して、すぐさま実行する。(だから「即時関数実行」というべきだろうと思うけれど、慣習に従う。)JavaScript で変数をスコープに閉じ込めるには関数の中に入れるしかないので、このパターンをよく使う。 で、よく知られている通り、これは CoffeeScript では、
と簡単に書ける。でも、どうしてそう書けるのか。 そもそも
を JavaScript にコンパイルすると
となる。つまり、
即時関数を後からもう一度呼び出したい場合がある。上記をふまえれば、次のように書けばよいことがわかる。
これを実行すると、すぐに "Hello" と出て、5 秒後にまた "Hello" と出る。このパターンはページの初期化コードなどに使える。ページが読み込まれたときに自動的に初期化し、ユーザーがいろいろ操作した後に初期化ボタンを押すとまた初期化される、みたいな。 では、即時関数に変数を渡すにはどうするか。こうする。
コンパイルすると、こうなる。
この場合、
これが即時関数でうまくコンパイルされるのを見ると、CoffeeScript はよくできているとあらためて思う。 上記を組み合わせると、こんなこともできる。
これを実行すると、最初に |
カテゴリ
[/language] (98) 最新記事
◇ パスワードについてのあなたの常識はもはや非常識かもしれない・その1 [/links] |