IIFE定义
IIFE: Immediately Invoked Function Expression(立即调用的函数表达式),声明函数的同时立即调用这个函数。
形式
(function() { //不污染外部作用域console.log(123); // 引用函数自身})();复制代码
(function foo(){ console.log(123);}());复制代码
优点
1.创建块级(私有)作用域,避免了向全局作用域中添加变量和函数,因此也避免了多人开发中全局变量和函数的命名冲突。
2.IIFE中定义的任何变量和函数,都会在执行结束时被销毁。这种做法可以减少闭包占用的内存问题,因为没有指向匿名函数的引用。只要函数执行完毕,就可以立即销毁其作用域链了。