在第二个函数x2()中,为什么仅在第二个函数中返回var pp?

时间:2018-12-29 15:57:11

标签: javascript closures

有人可以向我解释为什么第二个函数chunk_size需要返回第二个函数x2()才能返回变量f()吗?为什么不工作在声明之后只返回pp

pp

2 个答案:

答案 0 :(得分:1)

在您的情况下,x2返回一个保存pp值的函数,而不是该函数的结果。 x2实际上是闭包的示例,您可以在这里Javascript Closures

了解更多信息

如果您实际上想从初始调用x2返回结果,请进行以下更改:

function x2() {
  var pp = 20;
  function f() {
    return pp;
  }
  return f();
}

答案 1 :(得分:0)

而不是返回函数f,请尝试将其留给自己:例如,

function x2() {
        var pp = 20;
        return function () {
            return pp;
        }
    }
console.log(x2())
console.log(x2()())

如果您要这样做,这将使x2()()起作用。