Q:

Получить значение функции

Можно ли получить значение функции first из функции calc? Я знаю как идет вызов функций, но без понятия как получить значение ещё не выполненной функции 
    function first() {
        //console.log(first.arguments);
        return 10
    }

    function second() {
        return 20
    }

    function calc(param) {
        return param + calc.caller;
    }

    first(calc(second()));

A:

    function first(operator) {
        return operator ? operator(10) : 10
    }

    function second(operator) {
        return operator ? operator(20) : 20
    }

    function calc(rightVal) {
        return  function(leftVal){
            return leftVal + rightVal
        }
    }

    console.log(first(calc(second())));

