Posted at

CoffeeScriptで引数を必要としない関数の実行にdoが使えることを今さら知ったのでメモ

More than 3 years have passed since last update.

タイトルにあるように、CoffeeScriptで引数を必要としない関数の実行にdoが使えることを今さら知ったのでメモメモ。


結論から言えば、関数の前にdo句を用いればいい。

# hoge()

do hoge

ずっと、オライリー本に書いてあるFunction argumentsの章のところで


関数に引数が最低ひとつあれば括弧を必要としないのでCoffeeScriptって美しいよね。

でも引数が一個もない場合、関数を実行したいのか参照したいのか、CoffeeScriptはわかんないから、括弧の使用不使用の判断は注意しないといけないね。


って書いてあったので、この記述を曲解して引数がひとつもない関数は括弧付きで記述するしかないとてっきり勘違いしてた…。

同じオライリー本にあるPrivate variablesの章では


do句は関数をすぐに実行するよ!

無名関数の即時実行なんかに便利だね!


みたいな事書いてあるのは知ってたんだけど、この文をそのまま、「無名関数の即時実行にはdoを使う」みたいに覚えてた。こんな感じの奴↓

do ->

console.log 'hoge'

これ扱えてたんだから、引数のない関数の実行まであと一歩だったはずなのに、気付くのに何年かかったか…。