Javascript闭包测试-为什么我的结果为“未定义”?

时间:2019-05-31 16:22:28

标签: javascript

这是我的代码-

function test1 () {
  let num = 15;

  return function test2 () {
    console.log(num);
    num++;
  }
}

let f = test1();
console.log(f());
console.log(f());
console.log(f());

enter image description here

这是我得到的输出- enter image description here

我的问题是为什么我在每个值之后都得到Undefined结果?

1 个答案:

答案 0 :(得分:5)

ftest2不返回值。您希望在控制台日志中看到什么?如果添加return num,则会看到打印两次的数字。

function test1() {
  let num = 15;
  
  return function test2() {
    console.log(num);
    num++;
    return num;
  }
}

let f = test1();
console.log(f());
console.log(f());
console.log(f());