Как вернуть значение из обратного вызова, которому передан параметр - PullRequest
0 голосов
/ 24 декабря 2018

Я сделал квадрат функции (который возвращает квадрат числа) и передал ее в другую функцию.

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

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

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

Это не возвращает мне это квадратное значение в функции отображения, а возвращает мне 'undefined'.

Ответы [ 4 ]

0 голосов
/ 24 декабря 2018

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

В своем коде просто напишите return ключевое слово.

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

Приведенный выше код будет работать нормально

0 голосов
/ 24 декабря 2018

Здесь.Вам просто нужно вернуть square(num) внутри функции display.

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

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

display(function(){
  return square(num);
});
0 голосов
/ 24 декабря 2018

Здесь вы потеряете возвращаемое значение:

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

Вы должны либо вернуть его:

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

, либо использовать функцию стрелки

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

или вы связываете функцию:

 display(square.bind(null, num));
0 голосов
/ 24 декабря 2018

Вам не нужно использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...