以此代码为例:
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
会发生什么?它被摧毁了吗?或者它是否继续存在并与返回的函数混淆,但是无法访问?
答案 0 :(得分:4)
在Chrome中,name
将被点击;在FireFox中,name
与整个闭包保持一致。 IE浏览器?我不知道。