自调函数为什么要把 window 和 undefined 作为形参

;(function (window, undefined) {
    'use strict';
    // TODO
})(window);
  • 代码最前面的分号,可以防止多个文件压缩合并因为其他文件最后一行语句没加分号,而引起合并后的语法错误
  • 通过传入window变量,使其由全局变量变为局部变量,函数内访问window时,不需要将作用域链退到顶层作用域,这样可以更快访问window。当然你如果你的插件用不到window对象,那么就不用传递这个参数了。
  • 由于undefinde可被改写(ie8),传入undefined可以确保undefined真的是未定义
  • uglifyjs可对代码进行优化
参考

匿名函数中undefined形参疑问
javascript自执行函数为什么要把windows作为参数传进去

你可能感兴趣的:(自调函数为什么要把 window 和 undefined 作为形参)