Функция с аргументом функции

Мне просто интересно найти ключевое слово или решение, чтобы в дальнейшем я мог найти и исправить свою проблему, поэтому в основном я хотел вызвать функцию, но из аргумента функции, как это.

var arg = function() {/*do something*/};

function do(arg) {
  arg();
}

do(arg);

Но я хочу наложить на него несколько функций, но не постоянных, иногда это может быть 1 функция, а иногда 2 функции или больше, есть ли какое-то решение, которое я могу принять? или ключевое слово, с которого я начну поиск? Я уже искал в Интернете, но не смог найти то, что хочу.

В зависимости от того, чего вы пытаетесь достичь, может оказаться полезным конвейер. Или вы можете просто передать массив функций в качестве аргумента. Было бы полезно получить дополнительную информацию о варианте использования.

nipuna777 28.08.2018 05:31
Поведение ключевого слова "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) для оценки ваших знаний,...
0
1
42
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

function doFn(){    
   for(var i = 0; i < arguments.length; i++) arguments[i]();
}

Одна строка ES6:

  var doFn = (...args) => args.forEach(fn => fn());

PD: «do» - зарезервированное слово, вы должны использовать другое имя переменной.

Что вам нужно сделать с вашей функцией do(), так это:

function do(args) {    
    for (var i = 1; i <= args.length; i += 1) {
        args[i]();
    }
}

Это решит вашу проблему. Однако вы должны знать, что do - это ключевое слово JavaScript, поэтому вам не следует использовать его как собственную переменную или функцию.

Обновлено: вы должны включить все, что вы передаете своей функции, поэтому вам нужно добавить параметр args.

Ответ принят как подходящий

Вы можете использовать какую-нибудь действительно классную новую функцию, называемую параметрами отдыха. Вот пример.

function callMultiple(...fn) {
 fn.forEach(fn => fn());
}

function FnOne() {
 console.info('function one called');
}

function FnTwo() {
 console.info('function two called');
}

callMultiple(FnOne, FnTwo);

Теперь callMultiple может принимать любое количество функций. Ссылка MDN

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