【问题标题】:What is the meaning of returning a function from another function? [duplicate]从另一个函数返回一个函数是什么意思? [复制]
【发布时间】:2021-05-13 08:25:40
【问题描述】:

在javascript中从另一个函数返回一个函数是什么意思。这和我调用另一个函数中的函数一样吗

function fun(c){
    let a=3;
     return function(){
        return a+c;
    }
}
let add=fun(2);
console.log(add);

。我的第二个问题是为什么这个 add 变量是一个函数。

【问题讨论】:

  • 您添加了closure 标签,所以您知道发生了什么吗?
  • 返回函数是什么意思”基本上回答了“为什么这个add变量是函数”。
  • @georg Yeah..inner 函数保留 a 和 c 的值,这是闭包的概念

标签: javascript function nested closures lexical-scope


【解决方案1】:

目前,您返回的对象是函数。 在这种情况下,变量 add 包含对您必须调用的函数的引用。

【讨论】:

    【解决方案2】:

    这称为柯里化。它允许您将参数一一应用于函数。 示例:

    const add = a => b => a + b // Function that takes `a` and returns a function that adds `a` to `b`
    const addThree = add(3) // bind `a` to 3. This is a function that takes `b` and adds 3 to it
    console.log(addThree(1)) // now `b` is 1, it's gonna be added to `a` and return the final value

    有很多关于柯里化和部分应用的文献。 Google 是您的朋友

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多