JS中arow函数中的参数是什么?

问题描述 投票:0回答:6

请帮助新手解决。

有这样的代码:

    function makeDouble (x) {
      return x * 2; 
   }
    var doMath = (x, func) => func(x + 5);

   var num = 5;

任务是:

*仅使用makeDouble,doMath和num,使num的值等于20。

num = _____________________________________________________ *

我不明白为什么箭头功能的参数中有两个参数,但是在此功能本身中,只有一个参数。我在做什么错?

javascript arrow-functions
6个回答
1
投票

doMath()中的两个参数都被使用。第一个是参数x将在第二个参数func的函数调用中用作参数,并且从该函数调用返回的值将由doMath()本身返回。


1
投票

您可以将箭头功能转换为:

function doMath(x, func) { return func(x+5); }

因此您将一个值(x)和一个函数(func)传递给doMath函数。 func可以是任何函数,例如makeDouble ...您可以像这样调用它:

doMath(1, makeDouble)

结果将是(1 + 5)* 2 = 12。

我想您可以据此找出其余的内容。


1
投票

答案是num = doMath(num, makeDouble)

函数主体中还有2个参数。让我们再近一点func(x+5)

func是函数的第二个参数,我们传递给它的x是第一个参数


1
投票

这里,func是一个回调函数。在javascript中,您可以传递function作为参数,就像传递任何其他变量一样,例如整数,对象或数组。因此,在doMatch中,您要传递一个数字和一个回调函数。执行doMatch时,它将使用参数func(5 + 5)调用10。现在,将执行Func,并返回2*10(20)

  function makeDouble (x) {
      return x * 2; 
   }
    var doMath = (x, func) => func(x + 5);

   var num = 5;

console.log(doMath(num, makeDouble))

1
投票
function makeDouble (x) {
  return x * 2; 
}
const doMath = (x, func) => func(x + 5);

const num = 5;

let result = doMath(num, makeDouble); 

console.log(result);// 20

doMath(x, func)是带有两个参数的箭头函数。第一个参数是您的数值,第二个参数是一个函数,在这种情况下为makeDouble(x)。在箭头函数内部,使用数字参数+ 5调用makeDouble(x)函数,例如makeDouble( num + 5)。在这种情况下,num在构造函数中添加了五个,因此这次makeDouble返回10 * 2的乘积。此外,我建议修改var的用法。当前,使用let和const优先于var。

箭头功能可以将其他功能用作参数,这对于使用递归和功能编程非常有用。


0
投票

非常感谢大家!

我的问题是,我没有注意到arrow函数参数中的makeDouble()函数没有返回值,而是函数本身的内容。然后在arrow函数的主体中,可以作为参数调用makeDouble()函数。

© www.soinside.com 2019 - 2024. All rights reserved.