Готовлюсь к экзаменам в универе, этот вопрос есть в билете, буду очень признателен если кто то поможет дать достаточно широкий и исчерпывающий ответ на этот вопрос, было бы круто если бы с примером)
Используют их когда нужно функцию передавать в переменные, или другие места в коде, внутреннее имя это самый надежный способ обращения функции к самой себе, где бы она не была, то есть по внутреннему имени вы всегда обратитесь к функции, когда внешнее не так надежно, и можно во многих случаях заменить. Вот пример:
var times=0;
function sayHello(hello) {
if (times<5) {
console.log(hello);
times ;
sayHello(hello);
}
};
var fiveTimes = sayHello
fiveTimes('hi');
sayHello = null;
times=0;
fiveTimes('hello');
В этом примрее мы задаем значение имени функции null, и как видим далее функция не работает, ошибка во время выполнение, первое hello, всё таки вывело в консоль.
А если переписать вот так, то будет нормально:
var times=0;
var fiveTimes = function sayHello(hello) {
if (times<5) {
console.log(hello);
times ;
sayHello(hello);
}
};
fiveTimes('hi');
var funcHello = fiveTimes
fiveTimes = null;
times=0;
funcHello('hello');
Тут мы изменяем внешнее имя и присваиваем ему null, и тут всё срабатывает как надо, надежно, при любых условиях.