下面我们有一个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 规范)或事实上的(通用)名称?遮天蔽日?超载?