これは、クロージャ内にローカル オブジェクトを作成するコードです。
function A() {
this.welcome = "Welcome";
}
var P = (function() {
var a = new A();
function printa() {
console.log(a);
}
return {
printa: printa
};
})();
P.printa();
それは印刷します:
{ welcome: 'Welcome' }
P=... 関数が実行された後、P は関数 printa() への参照を保持する新しいオブジェクトを取得しますが、この時点でローカル変数 a を解放する必要があります。なぜ解放されないのですか?それとも、ガベージコレクションされていないために一時的にそこにあるのでしょうか?