【发布时间】:2017-08-30 07:44:09
【问题描述】:
我知道 IIFE 用于防止污染全局名称空间。我不明白的是,假设您有一个共享相同名称的变量,如果您要在给定函数内使用关键字var 声明一个变量,那么调用该函数是否无关紧要在运行时?
我可能让它听起来比实际更复杂,但请看下面的代码块:
示例 1:没有 IIFE
var firstName = "eugene";
function name(){
var firstName = "bobby";
console.log(firstName);
}
name(); //bobby
console.log(firstName); //eugene
示例 2:使用 IIFE
var firstName = "eugene";
(function(){
var firstName = "bobby";
console.log(firstName);
})();
console.log(firstName);
示例 2 输出基本相同的内容。如果要输出相同的东西,使用 IIFE 的意义何在?
【问题讨论】:
-
这个问题的例子已经很多了。 stackoverflow.com/questions/14317998/…
-
它...只是一个被立即调用的函数。为什么它需要有一个点?它做它做的事。
-
@SoEzPz 我已经查看了您的建议以及与此类似的许多其他问题。它仍然没有回答我的问题。这就是我问的原因。
标签: javascript iife