Привет. Подскажите пожалуйста, почему вызов функции работает при помещении в переменную work, а при вызове её по её же имени не работает? И почему тогда в случае, когда внутри функции return возвращает не функцию, а что либо другое, то вызов работает как раз по имени функции и без помещения её в переменную?
'''function makeWorker() {
let name = "Pete";
return function() {
alert(name);
};
}
let name = "John";
let work = makeWorker();
work(); //работает
makeWorker(); //не работает'''
Функции, называется makeWorker. Я её вызываю - makeWorker(). Она конечно выполняется, но алерт не появляется. Но стоит в return записать алерт и точно так де вызвать эту функцию, как всё сработает. Т.е. почему вызов функции не выполняет код внутри вложенный функции? Но если присвоить переменной вызов функции, то всё сработает