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