以这段代码为例:
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在这种情况下会发生什么?它被摧毁了吗?还是它继续存在并与返回的函数挂钩,但无法访问?