(function (global, undefined) {
... some code which doesnt use arguments array
} (this));
我经常看到模块模式是以这种方式完成的。
我真的很怀疑为什么还有第二个参数 undefined
?
这些示例是否有问题,或者undefined
有特殊含义吗?在这里?
最佳答案
undefined
是一个广泛使用的全局属性。在旧版本的 JavaScript 中,可以更改它的值(例如,更改为 true
)。这通常会破坏一切。
通过将其范围更改为“模块”(即函数)的本地范围,可以防止其他模块干扰它。
这允许代码安全地使用undefined
,而不必使用global.undefined
。
关于javascript - 自执行函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965393/