(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压缩的时候有点用处