答案 0 :(得分:4)
它只是一个立即调用的函数表达式,它具有已定义的上下文(this
)。普通的IIFE将全局对象作为其上下文。
读取您链接到的源文件,在此上下文中(没有双关语),他们使用this
获取对全局对象的显式引用,而不假设它已命名window
(对于浏览器)或global
(对于node.js等)。
(IIFE是一个常见的构造,用于创建一个新的作用域,在该作用域中可以声明变量而不会污染全局名称空间,并且可以立即执行块中的代码。)
答案 1 :(得分:1)
这样做的主要优点是您可以在函数内声明所需的变量,并且它们不会污染全局范围。
另请参阅:module pattern.