IIFE立即执行函数

96 阅读1分钟

立即执行函数

先引入一篇文章:zhuanlan.zhihu.com/p/22465092
仔细阅读

是什么

  1. 声明一个匿名函数
  2. 马上调用这个匿名函数

作用

  • 隐藏实现
  • 不会污染外部(全局)命名空间
  • 用它来编码js模块
  • 总之:创建一个独立的作用域

练习

(function () { //匿名函数自调用
    var a = 3
    console.log(a + 3) //6
  })()
  var a = 4
  console.log(a) //4
;(function () {
    var a = 1
    function test () {
      console.log(++a) 
    }
    window.$ = function () { // 向外暴露一个全局函数
      return {
        test: test
      }
    }
  })()

  $().test() // 1. $是一个函数 2. $执行后返回的是一个对象
// 输出2