当没有返回引用时,作用域是否终止?

时间:2013-05-31 05:51:30

标签: javascript

以此代码为例:

var test = (function(){
  var name = 'rar';
  return function foo(){
    console.log('test');
  };
}());

foo返回test ,内部范围内没有任何引用namename会发生什么?它被摧毁了吗?或者它是否继续存在并与返回的函数混淆,但是无法访问?第一种情况是否与执行以下操作相似,好像name从未成为等式的一部分?:

var test = function foo(){
  console.log('test');
};

这是另一个案例:

var test2 = (function(){
  var name = 'rar';
  var age = '20';
  return function foo(){
    console.log(age);
  };
}());

agefoo引用并形成一个闭包。但是,name仍未引用任何内容。在这种情况下,name会发生什么?它被摧毁了吗?或者它是否继续存在并与返回的函数混淆,但是无法访问?

1 个答案:

答案 0 :(得分:4)

在Chrome中,name将被点击;在FireFox中,name与整个闭包保持一致。 IE浏览器?我不知道。