闭包在函数作用域之外不起作用

Closure not working outside of the function scope

本文关键字:不起作用 作用域 函数 闭包      更新时间:2023-09-26

刚刚开始学习闭包,并在FireBug中编写了以下代码:

var later;
function outerFunc() {
  var innerVar = "Inside Outer";
  function innerFunc() {
     console.log(innerVar);
  }
  later = innerFunc;
};
outerFunc();
later();

但是在调用later();时它返回一个未定义的值。是不是应该打印出"Inside Outer" ?

var later;
function outerFunc() {
  var innerVar = "Inside Outer";
  function innerFunc() {
     console.log(innerVar);
  }
  later = innerFunc;
};
outerFunc(); //Don't run innerFunc, just set later = innerFunc
later(); // Execute innerFunc

所以它只记录一次。