2013-07-31 62 views
0
(function (global, undefined) { 
    ... some code which doesnt use arguments array 
} (this)); 

我经常看到模块以这种方式完成的模式。自我执行功能的参数

我真的质疑为什么还有第二个参数undefined? 这些例子是越野车还是在这里有undefined的特殊含义?

回答

2

undefined是一个被广泛使用的全局属性。在旧版本的JavaScript中,可以更改它的值(例如,到true)。这通常会破坏一切。 通过将其范围更改为“模块”(即函数)的本地范围,可防止其他模块干扰该模块。

这允许代码安全地使用undefined而不必使用global.undefined

MDN Reference

+0

真的回答了我的问题。谢谢。 –