たとえば、次のコードを見てください。
var test = (function(){
var name = 'rar';
return function foo(){
console.log('test');
};
}());
foo
内部スコープでtest
参照なしで返されます。name
はどうなりname
ますか?それは破壊されていますか?それとも、引き続き存在し、返された関数にぶら下がっていますが、アクセスできないだけですか? name
最初のケースは、方程式の一部ではないかのように、次のことを行うのと似ていますか?:
var test = function foo(){
console.log('test');
};
別のケースを次に示します。
var test2 = (function(){
var name = 'rar';
var age = '20';
return function foo(){
console.log(age);
};
}());
age
によって参照されfoo
、クロージャを形成します。ただし、name
まだ何からも参照されていません。name
この場合はどうなりますか?それは破壊されていますか?それとも、引き続き存在し、返された関数にぶら下がっていますが、アクセスできないだけですか?