代码之家  ›  专栏  ›  技术社区  ›  sahossaini

Javascript关闭测试-为什么结果是“未定义”?

  •  -1
  • sahossaini  · 技术社区  · 7 年前

    这是我的密码-

    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 每个值后的结果?

    2 回复  |  直到 7 年前
        1
  •  5
  •   junvar    7 年前

    f test2 不返回值。您希望在控制台日志中看到什么?如果你加上 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());