美文网首页
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