Затенение переменных в JavaScript

Ниже у нас есть IIFE , который (как и любая функция) создает локальную область видимости. Внутри этой области есть функция parseInt . Теперь, поскольку в браузере уже есть глобальная функция с таким именем, локальная функция затмит глобальную функцию parseInt - внутри IIFE любой вызов parseInt вызовет локальную функцию , а не глобальный. (На глобальную функцию по-прежнему можно ссылаться с помощью window.parseInt .)

parseInt('123', 10); // the browser function is called

(function() {

    function parseInt() { return 'overshadowed'; }

    parseInt('123', 10); // the local function is called

})();

parseInt('123', 10); // the browser function is called

Существует ли де-юре (спецификация ECMAScript) или де-факто (общий) название для этого? Затмение? Перегрузка?

26
задан AakashM 5 October 2011 в 11:02
поделиться