立即执行函数IIFE

243 阅读1分钟

IIFE定义

IIFE: Immediately Invoked Function Expression(立即调用的函数表达式),声明函数的同时立即调用这个函数。

形式


(function() {   //不污染外部作用域
console.log(123);   // 引用函数自身
})();


(function foo(){
  console.log(123);
}());

优点

1.创建块级(私有)作用域,避免了向全局作用域中添加变量和函数,因此也避免了多人开发中全局变量和函数的命名冲突。

2.IIFE中定义的任何变量和函数,都会在执行结束时被销毁。这种做法可以减少闭包占用的内存问题,因为没有指向匿名函数的引用。只要函数执行完毕,就可以立即销毁其作用域链了。