【发布时间】:2011-07-19 09:35:26
【问题描述】:
下面我们有一个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
是否有 de jure(ECMAScript 规范)或 de facto(通用)名称?遮遮掩掩?超载?
【问题讨论】:
标签: javascript scope iife