跳转JavaScript中的函数自调用3.自调用函数的区别

  自调用函数的定义:

  废话不多说,上代码。

  <pre class="kdocs-a href='https://www.veimoz.com/1509' title='国产狙击步枪发展的起源:CS/LR4狙击步枪和QBU10大口径反器材狙击步枪' target='_blank'javascript/a">`//正常函数声明
var fn1 = function(parmater1,paermater2){
    //函数体
    console.log('正常函数声明');
};//尽量习惯性写;不然就像在这里,即便不调用fn1()同样会输出 正常函数声明
//正常函数调用,如5、7两行都不写;会报错。不过如果7行整行不写不会报错,反而会直接调用fn1()
fn1();//控制台:正常函数声明
// 自调用函数形式1
(function () {

  console.log(&#39;自调用函数1&#39;);

})();//这里;不写同样会报错
//控制台:自调用函数1
//自调用函数形式2
(function(){
    console.log('自调用函数2');
}());
//控制台:自调用函数1`</pre>

  注意点:1.自调用函数是隐式函数,无法通过赋值给变量来调用方法,

  <pre class="kdocs-javascript">`var fn2 = (function(){

console.log(&#39;自调用函数2&#39;);

}());
//fn2();    //这样做会报错
console.log(fn2);    //输出结果为undefined`</pre>

  2.自调用函数运行后立即释放函数空间js代码调用,无法再度调用。详情请跳转JavaScript中的函数自调用

  3.自调用函数虽然无法赋给变量,但却可以通过return将返回值赋给变量。通过这个特点,我们可以用来做闭包

  <pre class="kdocs-javascript">`var fn3 = (function(){
    //局部变量写在这里,可以减少全局变量的使用。

return function(){

        console.log('个人理解:闭包就是把函数当作返回值,赋值给变量');
    }
}());
console.log(fn3);//输出是一个函数体,即fn3内返回的函数。
fn3();    //控制台:个人理解:闭包就是把函数当作返回值,赋值给变量`</pre>

  最后附带链接:

  局部变量和全局变量

  JavaScript----闭包函数

  释放函数空间涉及到堆和栈js代码调用,链接如下:

  JavaScript 中堆和栈的区别

文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/1526
0 评论
628

发表评论

!