(function (global, undefined) {
... some code which doesnt use arguments array
} (this));
我经常以这种方式看到模块模式。
我真的质疑为什么会有第二个参数undefined
?
这些示例是否有问题,或者undefined
是否有特殊含义?
答案 0 :(得分:2)
undefined
是一种被广泛使用的全局属性。在旧版本的JavaScript中,可以更改它的值(例如,更改为true
)。这通常会破坏一切。
通过将其范围更改为“模块”(即函数)的本地范围,可以防止其他模块干扰它。
这允许代码安全地使用undefined
,而不必使用global.undefined
。