匿名自执行函数的参数为什么是window和undefined

快乐打工仔 分类:实例代码

在当前很多的库中,都是以一个匿名自执行函数作为代码的起始。

代码如下:

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

大家可以注意到,这个匿名自执行函数具有两个形参;但是通常只传递一个window对象实参。

下面就介绍一下这其中的原因,感兴趣的朋友可以做一下参考。

传入window对象作为参数,是为了将其从全局数据变为一个局部数据,这样在函数作用域就可以直接访问window对象,而不用将作用域链退回到顶层作用域了;之所以规定了undefined形参,但是没有传递实参,这是为了确保undefined是真正的undefined,因为有些条件下undefined会被重写。

匿名自执行函数的参数为什么是window和undefined,这样的场景在实际项目中还是用的比较多的,关于匿名自执行函数的参数为什么是window和undefined就介绍到这了。

匿名自执行函数的参数为什么是window和undefined属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容