JS 自执行函数

Posted btlbk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 自执行函数相关的知识,希望对你有一定的参考价值。

  由于自己js基础知识薄弱,很多js的知识还没有掌握,所以接下来会经常写一些关于js基础知识的博客,也算给自己提个醒吧。

  js自执行函数,听到这个名字,首先会联想到函数。接下来,我来定义一个函数:

function aaa(a,b)
    return sum = a + b

  定义了一个名为aaa的函数,在里面可以计算两个数的和。如果想执行它,就必须得调用它,并且还得给它传参:

var aa = aaa(1,2)

  这样就实现了一个函数的定义与调用,通过console.log我们可以看到sum实现了两个数的相加。

  自执行函数是什么?自执行函数就是当它被定义出来,就会自动执行的函数。不需要调用,传参也很方便。就上面的函数,用自执行函数定义就是这样:

(function aaa(a,b)
    return sum = a + b
;)(1,2)

  通过控制台可以发现sum实现了两个数的相加。

  自执行函数有三种写法:

  1.   ( function ( “ 参数 ” ) " 函数方法 " ; ) ( “ 给参数传的值 ” )
  2.   ( function ( " 参数 " ) “ 函数方法 ” ; ( " 给参数传的值 " ) )
  3.        ! function ( " 参数 " ) " 函数方法 " ; ( " 给参数传的值 " ) 

  第三种!可以换作其他运算符或者void。

  自执行函数是很自私的,它的内部可以访问全局变量。但是除了自执行函数自身内部,是无法访问它的。例:

function aaa(a1,b1)
    return sum1 = a1 + b1
,
(function bbb(a2,b2)
    return sum2 = a2 + b2
;(),
console.log(aaa)
console.log(bbb)

  这是一个函数与一个自执行函数,输出这两个函数会发现:函数aaa被全部打印出来,而bbb则报错。自执行函数相当于一个瓶口朝下的杯子,当定义它的时候,它会倾斜,把杯口露出来,吸收外面的新鲜空气;当它执行完毕,杯口不再外露,紧闭起来,与外界再无关联。

以上是关于JS 自执行函数的主要内容,如果未能解决你的问题,请参考以下文章

js自执行函数

js 自执行匿名函数(转载)

JS自调用函数问题(立即执行函数)

js自执行函数表达式

js中自执行函数(function(){})()和(function(){}())区别

JavaScript自执行函数和jquery扩展方法