Sombra variável em JavaScript
Abaixo temos um IIFE, que (como qualquer função) cria um escopo local. Dentro desse escopo existe umparseInt
função. Agora, como já existe uma função global no navegador com esse nome, a função local ofuscará o globalparseInt
unção @ - dentro do IIFE, qualquer chamada paraparseInt
chamará a função local, e não a global. (A função global ainda pode ser referenciada comwindow.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
Tem algumade jure (Especificação ECMAScript) oude fat nome (comum) para isso? Ofuscando? Sobrecarregando?