グローバル変数がglobalオブジェクトのメンバであるように、ローカル変数もそのスコープに対応した『オブジェクトのようなもの』のメンバである
ローカルスコープ内で関数を定義すると、その関数は、そのスコープの『オブジェクトのようなもの』への参照を持ち、名前解決に使う
ローカルスコープが終了しても『オブジェクトのようなもの』は、それを参照している関数が存在する限り消滅しない これがJavaScriptのクロージャの原理
『オブジェクトのようなもの』はthisで自身を参照できないという点でオブジェクトとは異なる
ただしFunctionコンストラクタで生成した関数だけは『オブジェクトのようなもの』への参照を持たない(*1)
*1 この仕様はExtendScriptでは守られてないっぽい
PR