@survivor2005

Передать и вызвать функцию как параметр в JS?

Я извиняюсь, за свои скупые знания. Но у меня вопрос.
У меня есть функция. К примеру
function test(fn1, fn2){
if(fn1){
console.log(blabla);
}
else fn2;
}
Мне нужно что б в условии если функция fn1 вернут тру то я что то сделаю, а если фальш то хочу вызвать функцию, которая может быть разная. И я не могу ее вшить в код, так как она будет меняться в зависимости от определенных условий. Причем с параметрами надо будет вызывать. Но js мне не дает так сделать. Expected an assignment of fanction call instead saw an expression. Я конечно пробовал в коде менять на fn2() то есть вызывать ее. И вроде ок, но тогда я не смогу передать параметры при вызове.
Что я делаю не так или это в принципе не возможно? Спасибо.
  • Вопрос задан
  • 271 просмотр
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
В самом вызове test() можно обернуть исходные функции с их аргументами в функции:
function test(fn1, fn2){
  if(fn1()){
    console.log('blabla');
  } else {
    fn2();
  }
}

// в вызове оборачивайте в функции:
test(() => real_function1(arg0, arg1),  () => real_function2(arg3));


Первый вариант предпочтительнее, но для разнообразия второй вариант – «привязать» к ним аргументы:
test(real_func1.bind(null, arg1, arg2),  real_func2.bind(null, arg3));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Valera221
Делаю сайты
Можешь попробовать так
function test(fn1, fn2){
if(fn1){ 
console.log(blabla);
}
else if (fn2){
console.log (fn2)
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы