以下に、(他の関数と同様に)ローカルスコープを作成する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仕様)またはデファクト(共通)の名前がありますか?影を落とす?オーバーロード?