javascriptとrubyのクロージャーについて
クロージャーは「ローカル変数を参照する関数」です。
このいいところは、変数を一時保存できるところだと思ってます。
function closure() { let x = 0; return function(){ return ++x; } } c = closure() c() =>1 c() =>2
何回押したとか、初回だけとかの条件分岐をする場合は、使いやすいのではないでしょうか。
ちなみにrubyだと関数はブロック(Procオブジェクト)で表すことになります。
def counter x = 0 -> {x += 1} end c = counter c.call =>1 c.call =>2
こんな感じですね。
以上です。