Понятно что анонимная функция не имеет имени. Есть ли еще какие то отличия кроме указанной? В частности интересует каким контекстом выполнения она владеет кроме своего, а то есть к каким пространствам имен она имеет доступ.
Ответ
С точки зрения поведения (определения this, создания замыканий, объявления внутри переменных) разницы между именованной и анонимной функцией - нет
Если обратиться к спецификации, можно отметить, что функции можно разделить на FunctionDeclaration и FunctionExpression
FunctionDeclaration может быть анонимной только при объявлении ее как export default, при этом, при создании объекта функции ей присваивается имя default
Что касается FunctionExpression: к именованному FunctionExpression можно обращаться в его теле по имени, что позволяет делать рекурсивные вызовы.
Комментариев нет:
Отправить комментарий