Hoe使用window和undefined作为参数工作吗?

时间:2010-10-10 02:18:04

标签: javascript

  

可能重复:
  How does the (function() {})() construct work and why do people use it?

学习JavaScript,我遇到了这个功能:

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

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

1 个答案:

答案 0 :(得分:2)

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

只是立即调用FunctionExpression,window参数主要用于将标识符查找缩短到本地范围。

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

关于undefined参数,它用于确保您可以毫无后顾之忧地使用它,在某些实现中(实际上所有基于ECMAScript 3的实现)undefined全局属性({{1} })是可变的,这意味着有人可以将其值更改为例如:

window.undefined

打破你的剧本。