1.这两种写法都是一种立即执行函数的写法,在函数定义的时候就直接执行了
立即执行函数,即IIFE(Immediately Invoked Function Expression)
通常的函数声明和调用是分开书写的,例如:
function foo(){/**/} //函数定义,只是为了让解释器知道他的存在
foo() //解释器遇到该语句运行
立即执行函数的调用方式通常是将函数表达式、他的调用操作符、分组操作符放在一个括
号内,来告诉解析器这是一个需要立即执行的函数。否则通常情况下,解析器遇到一个
function关键字,都会把它当做是一个函数声明,而不是函数表达式
2.可以传递参数,例如:
(function foo(a1,a2,a3,...){...})(p1,p2,p3,..) ;
a1,a2,a3相当于函数的形式参数
而p1,p2,p3为函数的实参
原文:https://blog.csdn.net/stpice/article/details/80586444
版权声明:本文为博主原创文章,转载请附上博文链接!