为什么我们要把JavaScript代码放在IIFE中?

为什么我们要把JavaScript代码放在IIFE中?,javascript,Javascript,我最近开始了Angular.js教程,该教程显示了在。我想知道为什么我们要把JavaScript放在这样一个结构中?是因为安全原因吗 例:为什么会这样: (function(){ var app = angular.module("AppName", []) })(); 不仅如此: var app = angular.module("AppName", []) 将app作为全局变量可能会导致冲突这会阻止您创建全局变量。但我想如果我使用require.js,这将是无用的,对吧?基本上,

我最近开始了Angular.js教程,该教程显示了在。我想知道为什么我们要把JavaScript放在这样一个结构中?是因为安全原因吗

例:为什么会这样:

(function(){
    var app = angular.module("AppName", [])
})();
不仅如此:

var app = angular.module("AppName", [])

将app作为全局变量可能会导致冲突

这会阻止您创建全局变量。

但我想如果我使用require.js,这将是无用的,对吧?基本上,因为requirejs会将其封装在自己的闭包中。对不起,我不知道IIFE是另一种调用它的方式。我将投票结束这个问题。这一切都很好,我只是想澄清条款,而另一个家伙注意到,通过澄清的条款,这已经被问到了。虽然iLife是创建闭包的一种方式,但闭包确实与IFFE不同。请注意,这些示例所做的事情完全不同。