如何从传递了参数的回调中返回值

时间:2018-12-24 09:42:05

标签: javascript ecmascript-6 callback

我使一个函数平方(返回数字的平方)并将其传递给另一个函数。

var num = 5;
  function square(x){
  return x*x;
}

function display(fn){
  console.log(fn())
}

display(function(){square(num)});

在显示函数中返回的不是平方值,而是在返回“未定义”。

4 个答案:

答案 0 :(得分:2)

您不必使用function(){}来调用函数。 它仅用于定义函数。

除此之外,您只需使用fn变量即可登录控制台,而不必使用fn()

var num = 5;
function square(x){
    return x*x;
}

function display(fn){
    console.log(fn)
}

display(square(num));

也可以将值返回到变量中,如果这样便于您阅读:

function square(x){
    return x*x;
}

function display(fn){
    console.log(fn)
}

var num = 5;
var calculationResult = square(num);
display(calculationResult);

答案 1 :(得分:2)

这里。您只需要在square(num)函数内返回display

var num = 5;
  function square(x){
  return x*x;
}

function display(fn){
  console.log(fn());
}

display(function(){
  return square(num);
});

答案 2 :(得分:1)

您在此处丢失了返回值:

 display(function(){square(num)})

您必须将其退回:

 display(function(){ return square(num)})

或者您使用箭头功能

 display(() => square(num));

或者您绑定函数:

 display(square.bind(null, num));

答案 3 :(得分:1)

display(function(){square(num)});

只需在代码中输入 return 关键字即可。

display(function(){return square(num)});

上面的代码可以正常工作