美文网首页
对立即执行函数(IIFE)的理解

对立即执行函数(IIFE)的理解

作者: 2016_18点 | 来源:发表于2017-05-06 15:10 被阅读0次

最大的作用是创建一个独立的作用域
用IIFE(匿名函数立即执行)实现,针对不需要复用的功能模块可以用IIFE完全消除全局变量,所以一般IIFE都是用来辅助命名空间/模块化方式的

函数表达式后面加上括号可以立即调用该函数,但是函数声明不可以
例如:function a(){}后直接加()不能实现立即执行 function(){}()(错误);
但在function前面加!、+、 -甚至是逗号等到都可以起到函数定义后立即执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式,消除了javascript引擎识别函数表达式和函数声明的歧义,告诉javascript引擎这是一个函数表达式,不是函数声明,可以在后面加括号,并立即执行函数的代码。
加括号是最安全的做法,因为!、+、-等运算符还会和函数的返回值进行运算,有时造成不必要的麻烦。

Paste_Image.png
原因:
JavaScript引擎规定,如果function关键字出现在行首,一律解释成语句。因此,JavaScript引擎看到行首是function关键字之后,认为这一段都是函数的定义,不应该以圆括号结尾,所以就报错了。
意义
目前看来最大的作用创建一个独立的作用域,隔离作用域,因为直到ES5为止JS里都只有函数作用域,没有局部作用域。那么要隔离作用域就只能把代码用一个函数框起来了,然后用所谓立即执行函数的方式。

补充:还有创建闭包函数

相关参考:

关于JavaScript中立即执行函数的理解

相关文章

  • JS重要概念之立即执行函数与闭包高级

    #立即执行函数表达式IIFE,简称“立即执行函数” 立即执行函数表达式,IIFE(immediately-invo...

  • 02- ES6 函数声明

    1、立即执行函数表达式 IIFE 用块级作用域写法,代替立即执行函数表达式IIFE。 IIFE写法: 用“块级作用...

  • javascript立即执行函数

    立即执行函数--IIFE (Immediately Invokable Function Expressions》...

  • 立即执行函数

    IIFE(立即执行函数) 一个在定义时就会被立即执行的函数,这不仅避免了外界访问此 IIFE 中的变量,而且又不会...

  • IIFE(函数立即执行)

    >一般函数声明后,需要调用才能执行.IIFE是在函数后面加`()`,表示立即执行.>1.方式:+function(...

  • IIFE立即执行函数

    就是下面这样的的代码: 关于IIFE书写方式 第一种情况: 解释:JavaScript在解析代码时,当遇到func...

  • 立即执行函数(IIFE)

    IIFE (Immediately Invoked Function Expression) is a JavaS...

  • 立即执行函数(IIFE)

    翻译原文地址 在听到对流行的javascript术语“self-executing anonymous funct...

  • 对立即执行函数(IIFE)的理解

    最大的作用是创建一个独立的作用域用IIFE(匿名函数立即执行)实现,针对不需要复用的功能模块可以用IIFE完全消除...

  • IIFE

    IIFE:Immediately-Invoked Function Expression立即执行函数:在函数创建之...

网友评论

      本文标题:对立即执行函数(IIFE)的理解

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