Как вернуть значение из обратного вызова, которому передан параметр

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

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

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

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

Он не возвращает мне это квадратичное значение в функции отображения, вместо этого он возвращает мне «undefined».

Функция, которую вы передали display, ничего не возвращает, поэтому undefined. поменять на return square(num)

CertainPerformance 24.12.2018 10:42

func 1 shoud return func2(param)

Mirakurun 24.12.2018 10:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
71
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вам не нужно использовать function(){} для вызова вашей функции. Он используется только для определения функции.

Кроме того, вы можете просто использовать переменную fn для входа в консоль, вам не нужно использовать fn().

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

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

display(square(num));

Также возможно вернуть значение в переменную, если это облегчит вам чтение:

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

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

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

Как это вернуть square(num)? display ничего не возвращает.

Mirakurun 24.12.2018 10:46

Функция squire возвращает значение (на данный момент 25) в функцию отображения. Итак, fn = 25. Это приводит к console.info(25)

R Pelzer 24.12.2018 10:52

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

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

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

display(function(){
  return square(num);
});
Ответ принят как подходящий

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

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

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

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

или вы используете стрелочную функцию

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

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

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

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

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

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

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

Другие вопросы по теме