为什么第一个代码有效,第二个代码无效?

时间:2014-05-19 11:16:40

标签: javascript function variables scope

请解释为什么第一个代码有效,第二个代码无效。我做错了什么?

代码1(工作代码)

test1 = (function() {
  var foo = 6;
  return function() {
     alert(foo);
  };
})();
test1();

代码2(不工作)

function test1() {
  var foo = 6;
  return function() {
     alert(foo);
  };
};
test1();

1 个答案:

答案 0 :(得分:2)

在第二种情况下,您没有调用返回的函数对象。你需要做

test1()();

您可以像这样检查

console.log(typeof test1());
# function