立即执行函数

187 阅读1分钟

es6出来之前, 我们一般用立即执行函数创建局部作用域

(function(){
    var a = 1
    console.log(a)
})()

等同用es6如下写法

{
    let a = 1
    console.log(a)
}

具体应用: 库类封装

类库封装最重要的要求就是不能让类库中的变量污染全局。

比如jQuery只暴露 $ 就好了

写法一

(function(){
    var jq = window.$ = function(){
    
    }
})()

写法二

var $ = (function(){
    var jq = function(){}
    
    return jq
})()