なんとなくクロージャがわかった気がする。
function generateClosure(arg1) { return function(arg2) { print(arg1 + arg2); } } { var c1 = generateClosure("今夜が"); c1("山田"); // "今夜が山田" を出力 var c2 = generateClosure("ショウ"); c2("ヘイヘ〜イ"); // "ショウヘイヘ〜イ" を出力 } { var c1 = function(arg) {print("今夜が" + arg);} c1("山田"); // "今夜が山田" を出力 var c2 = function(arg) {print("ショウ" + arg);} c2("ヘイヘ〜イ"); // "ショウヘイヘ〜イ" を出力 }
% js < closure.js 今夜が山田 ショウヘイヘ〜イ 今夜が山田 ショウヘイヘ〜イ