タイトルにあるように、CoffeeScriptで引数を必要としない関数の実行にdoが使えることを今さら知ったのでメモメモ。
結論から言えば、関数の前にdo句を用いればいい。
# hoge()
do hoge
ずっと、オライリー本に書いてあるFunction argumentsの章のところで
関数に引数が最低ひとつあれば括弧を必要としないのでCoffeeScriptって美しいよね。
でも引数が一個もない場合、関数を実行したいのか参照したいのか、CoffeeScriptはわかんないから、括弧の使用不使用の判断は注意しないといけないね。
って書いてあったので、この記述を曲解して引数がひとつもない関数は括弧付きで記述するしかないとてっきり勘違いしてた…。
同じオライリー本にあるPrivate variablesの章では
do句は関数をすぐに実行するよ!
無名関数の即時実行なんかに便利だね!
みたいな事書いてあるのは知ってたんだけど、この文をそのまま、「無名関数の即時実行にはdoを使う」みたいに覚えてた。こんな感じの奴↓
do ->
console.log 'hoge'
これ扱えてたんだから、引数のない関数の実行まであと一歩だったはずなのに、気付くのに何年かかったか…。