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