Давайте заглянем в саму функцию createTodoApp. В ней вы можете увидеть вызов трех функций и сохранение возвращаемого результата в переменные. Давайте разберемся что тут происходит на примере первой функции createAppTitle.
function createTodoApp(container, title = 'Список дел') {
let todoAppTitle = createAppTitle(title);
let todoItemForm = createTodoItemForm();
let todoList = createTodoList();
/* остальной код изучим позже */
}
Тут создается элемент с помощью метода document.createElement(), затем с помощью свойства innerHTML сохраняется значение из аргумента title. Ниже я продублировал этот код, но в комментариях указал что именно происходит для каждой строчки кода.
function createAppTitle(title) {
let appTitle = document.createElement('h2');
/* <h2></h2> */
appTitle.innerHTML = title;
/* <h2>Тут будет значение из title</h2> */
return appTitle;
}
Обратите внимание на последнюю строчку кода с return. Вызовов return возвращает элемент, без этого переменная todoAppTitle в функции createTodoApp ничего не будет содержать. Когда функция createAppTitle выполниться, то в переменной todoAppTitle будет элемент <h2> с содержимым из переменной title.
function createTodoApp(container, title = 'Список дел') {
let todoAppTitle = createAppTitle(title);
/* todoAppTitle = <h2>Тут будет значение из title</h2> */