首页 > function(window, document)这种写法有什么意义吗

function(window, document)这种写法有什么意义吗

(function(window, document) {
    //todo something
})(window, document);

看到好多人这么写,有什么意义么?
window,document作为全局的变量有必要传参数到立即执行的匿名函数内部么?


一:代码压缩时window,document参数可以写成w,d之类,如果访问到全局变量则不能压缩
二:性能优化,把全局变量传入函数,在函数内就有了window和docment的局部变量,每次访问在函数内可以找到,就不用再去全局找


(function(window,doc) {

// doc == document
doc.xxx

})(window,document);
可以理解了吗?

里面是局部变量,外部是全局变量。
好处是与其他代码混合的时候不会混淆全局变量。


关于内存方面,
全局变量是在内存中开辟一块内存,直到你关闭这个页面,才会销毁。
局部变量当你执行完函数,并且不再使用的时候,就会销毁。

对就赞,错就改


js压缩的时候有点用处

【热门文章】
【热门文章】