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

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

我真的很怀疑为什么还有第二个论点undefined?这些例子是错误的还是这里有特殊含义undefined

4

1 回答 1

2

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

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

MDN 参考

于 2013-07-31T08:39:15.050 回答