(function foo(){ var a = 3; console.log(3); })()
var a = 2; (function IIFE(global){ var a = 3; console.log(a); // 3 console.log(global.a) // 2 })(window); console.log(a); // 2
在代码风格上对全局对象的引用变得比一个没有全局字样的变量更加清晰。可以从外部作用域传递任何你需要的东西,这对于改进代码风格是非常有帮助的
var a = 2; (function IIFE(def){ def(window) })(function def(global){ var a = 3; console.log(a); // 3 console.log(global.a); //2 })
原文:https://www.cnblogs.com/wzndkj/p/12340443.html