Показать сообщение отдельно
  #1 (permalink)  
Старый 01.01.2022, 02:05
Новичок на форуме
Отправить личное сообщение для Amonecks Посмотреть профиль Найти все сообщения от Amonecks
 
Регистрация: 01.01.2022
Сообщений: 6

Проблема с параметрами функции
Доброго времени суток. Столкнулся с проблемой, что функция записанная в параметре которая вызывает другую функцию, не работает. Вот код
function showPosition(order, pos1, pos2){
    if(order){
        pos1();    
    } else {
        pos2();  
    }
}
showPosition(true, function(){console.log('Позиция 1'); pos2();}, function(){console.log('Позиция 2'); pos1();});

Не могу понять в чем проблема, ведь по сути в функции showPosition создаются две переменные pos1 и pos2 к которым присваиваются соответствующие значения и потом они запускаются в зависимости от условия.
Допустим если это написать отдельно:
function func1(){
    console.log('Один');
    function func2(){
        console.log('Два');
        func1();
    }
    func2();
}
func1();

функция вызывает вызвавшую её функцию, так же если в мою задачу передать функции не напрямую в параметре, а отдельно в переменных, то всё работает
function showPosition(order, pos1, pos2){
    if(order){
        pos1();
    } else {
        pos2();
    }
}

let pos1 = function (){
    console.log('Позиция 1');
    pos2();
};
let pos2 = function (){
    console.log('Позиция 2');
    pos1();
};

showPosition(true, pos1, pos2);
Ответить с цитированием