いけむランド

はてダからやってきました

クロージャ

なんとなくクロージャがわかった気がする。

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
今夜が山田
ショウヘイヘ〜イ
今夜が山田
ショウヘイヘ〜イ