JavaScript の関数は第一級オブジェクト(第一級関数)だとよく言われますね。変数に代入できるし、関数の引数にすることができるし、関数の戻り値にすることもできます。以下のとおりです。 function a() { console.log("Hello!"); } function f(x) { x(); } a(); //=>"Hello!" var b = a; b(); //=>"Hello!" f(b); //=>"Hello!" function g() { return function () {console.log("Hello, world!");}; } var c = g(); c(); //=>"Hello, world!" じつは Ruby の lambda は、上で JavaScript の関数がやっていることをすべて行うことができます。 a = lambd