【问题标题】:JS - passing argument into nested argumentJS - 将参数传递给嵌套参数
【发布时间】:2019-12-19 23:22:43
【问题描述】:

'cal2(a)(2)'在下面的代码中是如何工作的?

cal2 = (a) => (b) =>{return a+b}
cal = (a) => { return cal2(a)(2)};
cal(1)
\\ 3

【问题讨论】:

  • cal2 是一个返回另一个函数的函数。通过执行cal2(a)(2),您将a 传递给cal22 传递给cal2 返回的函数。
  • 谢谢克里斯,你能告诉我执行的顺序吗?

标签: javascript function arguments


【解决方案1】:

这是用更传统的格式重写它的方法:

cal2 = function(a) {
    retval = function(b) {
        return a + b
    }

    return retval;
}

cal = function(a) {
    return cal2(a)(2);
}

这应该可以解释这个谜题。

【讨论】:

    【解决方案2】:

    您的 cal 函数返回 cal2(a)(2) 的结果。 cal2 是一个返回另一个函数的函数,在该函数中,您返回传递给 call2 和它返回的匿名函数的 2 个变量的总和。基本上 cal2(1) 只会返回一个函数,但是当您添加另一个括号时,您也在调用该匿名函数。这是一个例子;

    const cal2 = (a) => (b) =>{return a+b}
    const cal = (a) => { return cal2(a)(2)};
    cal(1); // returns 3;
    
    const aFunction = cal2(3); // it becomes a function
    console.log(aFunction(2)); // You can call it anytime, logs:5
    console.log(cal2(3)(2)); //You directly called the returned function, logs:5

    【讨论】:

    • 谢谢,尤努斯·埃姆雷。
    • 不客气 Hugo,顺便说一下订单是 cal => cal2 => 匿名的。
    猜你喜欢
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多