Javascript 这个函数是如何使用window和undefined作为参数构造的?

Javascript 这个函数是如何使用window和undefined作为参数构造的?,javascript,Javascript,可能重复: 在学习JavaScript时,我遇到了以下函数: (function(window, undefined){ // … })(window); 我想知道这是什么类型的函数以及如何调用它。这是一种广泛使用的模式,允许您拥有一个局部范围来声明所有变量,而不会污染全局范围 如果只是立即调用FunctionExpression,则窗口参数主要用于将标识符查找缩短到本地范围 在浏览器环境中,窗口是全局对象的一个属性,它指向全局对象本身,如果它存在于局部范围内,解析速度会更快 关于und

可能重复:

在学习JavaScript时,我遇到了以下函数:

(function(window, undefined){
  // …
})(window);

我想知道这是什么类型的函数以及如何调用它。

这是一种广泛使用的模式,允许您拥有一个局部范围来声明所有变量,而不会污染全局范围

如果只是立即调用FunctionExpression,则
窗口
参数主要用于将标识符查找缩短到本地范围

在浏览器环境中,
窗口
是全局对象的一个属性,它指向全局对象本身,如果它存在于局部范围内,解析速度会更快

关于
undefined
参数,它用于确保您可以放心地使用它,在某些实现中(实际上是所有基于ECMAScript 3的实现),
undefined
全局属性(
window.undefined
)是可变的,这意味着有人可以将其值更改为,例如:

window.undefined = true;

打破你的脚本。

同意,我只回答
窗口
未定义的
参数,这在“重复”中没有涉及,我认为解释一下是有意义的。。。