美文网首页
05_IIFE-立即调用函数表达式

05_IIFE-立即调用函数表达式

作者: 源大帝 | 来源:发表于2017-08-21 15:35 被阅读0次

    . 理解

    • 全称: Immediately-Invoked Function Expression

    . 作用

    • 隐藏实现
    • 不用命名函数,避免了污染全局变量
    • 用它来编码js模块
    • IIFE内部形成了单独作用域,可以封装一些外部无法读取的私有变量

    有时候我们需要在定义函数后立即调用改函数,这时候不能再定义后面加上圆括号,会报错的。

    (function (){.......}())// 报错
    (function (){......})() //报错

    • 上面两种方式以圆括号开头,JavaScript引擎会认为是一个表达式,不是定义语句。这就叫立即调用的函数表达式。在表达式的后边必须加上分号

    (function (){......})() ; 正确

    • 只要是表达式的写法都是对的,写法多种


    (function () { //匿名函数自调用
        var a = 3
        console.log(a + 3)
      })();
    
    (function () {
        var a = 1
        function test () {
          console.log(++a)
        }
        window.$ = function () { // 向外暴露一个全局函数
          return {
            test: test
          }
        }
      })()
    
      $().test() // 1. $是一个函数 2. $执行后返回的是一个对象
    

    相关文章

      网友评论

          本文标题:05_IIFE-立即调用函数表达式

          本文链接:https://www.haomeiwen.com/subject/arocdxtx.html