Правильный термин [Переменная] Затенение
В компьютерном программировании теневое копирование переменной происходит, когда переменная, объявленная в определенной области (блок решений, метод или внутренний класс), имеет то же имя, что и переменная, объявленная во внешней области. Эта внешняя переменная Говорят, что в тени ...
Функции в JavaScript - это просто функциональные объекты, хранящиеся в переменных (или свойствах), которые подчиняются тем же правилам области действия / разрешения, что и обычные переменные (или свойства) . Это объясняет, почему к оригиналу все еще можно получить доступ как window.parseInt
. Именно «IIFE» представляет эту новую область (функции - единственный способ ввести новую область в JavaScript).
Однако в спецификации ECMAScript [5-е издание] не используется термин shadowing , и при этом я не могу найти конкретный термин для замены. (Фундаментальное поведение shadowing определено в «10.2.2.1 GetIdentifierReference» и связанных с ним разделах.)
Это не с перегрузкой и не с перегрузкой , которые совершенно разные. Я понятия не имею, откуда взялась overshadowing (в этом контексте) или как она должна отличаться от "нормальной" [variable] shadowing . Если бы термин shadowing еще не существовал для объяснения этого поведения, тогда - с точки зрения английского языка в любом случае - overshadowing («сделать незначительным / несущественным») может быть более подходящим чем затенение («бросить тень на / затемнить»).
Удачного кодирования.