@dmitry-toster

Почему функция не доступна внутри map?

function f() {
    const func = (value) => value

    const numbers = [1, 2, 3]

    return numbers.map(n => {
        debugger
    })
}

f()

Почему в месте, где стоит debugger, функция func недоступна? Как это исправить?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 2
@dmitry-toster Автор вопроса
Следует заметить, что данное поведение относится не только к функциям, но и к переменным.
Если сравнить 2 примера
1. 5ee9eb93d9703802994995.jpeg
то здесь данная ф-я отсутствует в скоупе из-за того, что к ней нет обращения
2. 5ee9ec0588aa7747007472.jpeg
а тут она уже доступна, поскольку была использована в качестве аргумента у метода map

Похоже, что это тонкости оптимизации движка V8. Неиспользуемые ф-и и переменные просто удаляются сборщиком мусора.

P.s спасибо пользователю Dima Polos за подсказку вызвать функцию, что, собственно и поспособствовало данному умозаключению)
Ответ написан
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
Поправил
Функция func видна внутри map, но не видна за пределами f
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы