irpas技术客

JavaScript之立即执行函数_MWXXXXX

未知 5768

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

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

打印结果为:

???如果不调用的话,我们打印的结果永远不会显示。 ????????所以这里就会提到我们的立即执行函数,所谓立即执行函数,就是不需要调用,立马就能执行的函数。 立即执行函数有两种最常见的写法:

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

举个例子:

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

打印结果为:

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

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

打印结果为:

?

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

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

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


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #fn #consolelog1