自执行功能的论证

时间:2013-07-31 08:34:12

标签: javascript

(function (global, undefined) {
  ... some code which doesnt use arguments array
} (this));

我经常以这种方式看到模块模式。

我真的质疑为什么会有第二个参数undefined? 这些示例是否有问题,或者undefined是否有特殊含义?

1 个答案:

答案 0 :(得分:2)

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

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

MDN Reference