我们知道,在一般情况下,函数必须先调用才能执行,如下所示,我们定义了一个函数,并且调用,

function fn(){
    console.log(1);
    }
    fn();

打印结果为:

JavaScript立即执行函数用法解析

        如果不调用的话,我们打印的结果永远不会显示。
        所以这里就会提到我们的立即执行函数,所谓立即执行函数,就是不需要调用,立马就能执行的函数。

立即执行函数有两种最常见的写法:

  • (function(){})()
  • (function(){}())

举个例子:

 (function fn(){
            console.log(2);
        })()

打印结果为:

JavaScript立即执行函数用法解析

打印成功。
 

       立即执行函数中的第二个小括号就相当于调用函数,我们同样可以给立即执行函数传参数,,将我们要传递的参数写在第二个()里面,作为实参,

如下:

 (function fn(a,b){
    console.log('a+b='+a+b);
 })(1,2)

打印结果为:

JavaScript立即执行函数用法解析

        第二种立即执行函数使用方法和第一种基本相似,不在赘述。
        需要注意的是:如果有多个立即执行函数,他们之间需要逗号分隔,否则会报错。同时,在立即执行函数里面,也可以采用匿名函数的形式书写。

        那么立即执行函数有什么作用或者好处呢?

        它最大的作用就是独立创建了一个作用域。我们知道,javascript 中没有私有作用域的概念,如果在多人开发的项目上,在全局或局部作用域中声明了一些变量,可能会被其他人不小心用同名的变量给覆盖掉,而立即执行函数里面的变量都是局部变量,不会有命名冲突的情况。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。