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