javascript closure

jsのクロ―ジャとは
「ローカル変数を参照している、
関数の中に定義している関数」

function countNum(num) {
  var local_num = num;
  var local_func = function() {
    return local_num++;
  }
  return local_func;
}

var myCountNum = countNum(10);
console.log(myCountNum());//10
console.log(myCountNum());//11
console.log(myCountNum());//12

クロージャの実体は関数の中のローカル関数。
通常、関数の中で定義されるローカル変数は、
関数の処理が終わるとその時点で破棄される。
ただ上記のように、myCountNumがlocal_numを参照し続けている場合、
local_numは、myCountNumが有効な限り破棄されない。