[メモ][JavaScript] クロージャ

クロージャとは、「ローカル変数を参照している関数内関数」。

var myClosure1 = closure(0) で、変数 myClosure0 に、function(){return ++counter} という匿名関数が登録される。その後は、myClosure0() を呼び出す度に、myClosure0 が内部で保持しているローカル変数 counter の値がインクリメントされて返される。

別の変数に格納されたクロージャは、別のスコープチェーンに属すので、myClosure0 と myClosure100 は、同じ名前のローカル変数 counter を内部に保持しているが、counter に入っている値は異なる。

※本文中のサンプルコードは、『JavaScript本格入門』p.165を参考にしている。


コメントを残す