const createFirstFun = function(fun) {
// эта фигня вернет функцию которую можно будет вызвать()
return function(sometext){
// эта фигня будет вызывать переданный сверху fun() с аргументом sometext
fun(sometext.toUpperCase())
}
}
const scream = createFirstFun(
// вот этот всё внутри createFirstFun станет параметром fun
function(text) {return alert(text)}
);
// так как createFirstFun вернет функцию которую можно будет вызвать()
// то мы и вызываем эту возвращенную функцию с параметром sometext = 'Hello'
scream('Hello');
ну как-то так