Доброго времени суток. Столкнулся с проблемой, что функция записанная в параметре которая вызывает другую функцию, не работает. Вот код
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);