Ниже мы имеем 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) или де-факто (общее) имя? Затмив? Перегрузки?