• <tbody id="9je1r"></tbody><tbody id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></tbody>
      • <acronym id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></acronym>

        亚洲无码Aⅴ,视频1页精品,欧美系列一区二区,曰韩色999

        Javascript中什么是匿名函數(shù)?

        2020/11/17 9:27:11   閱讀:2774    發(fā)布者:2774

        匿名函數(shù):沒有實(shí)際名字的函數(shù)。

        在Javascript定義一個(gè)函數(shù)一般有如下三種方式: 

        函數(shù)關(guān)鍵字(function)語(yǔ)句: 
        function fnMethodName(x){alert(x);} 

        函數(shù)字面量(Function Literals): 
        var fnMethodName = function(x){alert(x);} 

        Function()構(gòu)造函數(shù): 
        var fnMethodName = new Function('x','alert(x);')

        上面三種方法定義了同一個(gè)方法函數(shù)fnMethodName,

        第1種就是最常用的方法,后兩種都是把一個(gè)函數(shù)復(fù)制給變量fnMethodName,而這個(gè)函數(shù)是沒有名字的,即匿名函數(shù)。

        function (){

            console.log("李四");

        }

        到此,你會(huì)發(fā)現(xiàn)單獨(dú)運(yùn)行一個(gè)匿名函數(shù),由于不符合語(yǔ)法要求,報(bào)錯(cuò)啦!解決方法只需要給匿名函數(shù)包裹一個(gè)括號(hào)即可:

        //匿名函數(shù)在其它應(yīng)用場(chǎng)景括號(hào)可以省略

        (function (){

            //由于沒有執(zhí)行該匿名函數(shù),所以不會(huì)執(zhí)行匿名函數(shù)體內(nèi)的語(yǔ)句。

            console.log("李四");

        })

        如果需要執(zhí)行匿名函數(shù),在匿名函數(shù)后面加上一個(gè)括號(hào)即可立即執(zhí)行!

        (function (){

            //此時(shí)會(huì)輸出李四

            console.log("李四");

        })()

        倘若需要傳值,直接將參數(shù)寫到括號(hào)內(nèi)即可:

        (function (str){

            //此時(shí)會(huì)輸出李四好帥!

            console.log("李四"+str);

        })("好帥!")

         
        匿名函數(shù)的應(yīng)用場(chǎng)景

        1、事件

        <input type="button" value="點(diǎn)我啊!" id="sub">

        <script>

            //獲得按鈕元素

            var sub=document.querySelector("#sub");

            //給按鈕增加點(diǎn)擊事件。

            sub.onclick=function(){

                alert("當(dāng)點(diǎn)擊按鈕時(shí)會(huì)執(zhí)行到我哦!");

            }

        </script>

         

        2、對(duì)象

        var obj={

            name:"李四",

            age:18,

            fn:function(){

                return "我叫"+this.name+"今年"+this.age+"歲了!";

            }

        };

        console.log(obj.fn());//我叫李四今年18歲了!

         

        3、函數(shù)表達(dá)式

        //將匿名函數(shù)賦值給變量fn。

        var fn=function(){

            return "我是一只小小小小留下,怎么飛也飛不高!"

        }

        //調(diào)用方式與調(diào)用普通函數(shù)一樣

        console.log(fn());//我是一只小小小小留下,怎么飛也飛不高!

         



         

        模仿塊級(jí)作用域

        塊級(jí)作用域,有的地方稱為私有作用域。JavaScript中是沒有塊級(jí)作用域的,例如:

        if(1==1){//條件成立,執(zhí)行if代碼塊語(yǔ)句。

            var a=12;//a為全局變量

        }

        console.log(a);//12

        for(var i=0;i<3;i++){
            console.log(i);
        }

        console.log(i);//4

        if(){}for(){}等沒有自己的作用域。如果有,出了自己的作用域,聲明的變量就會(huì)立即被銷毀了。但是咱們可以通過(guò)匿名函數(shù)來(lái)模擬塊級(jí)作用域:

        (function(){

            //這里是我們的塊級(jí)作用域(私有作用域)

        })();

        嘗試塊級(jí)作用域:

        function fn(){

            (function(){

                var la="啦啦啦!";

            })();
            console.log(la);//報(bào)錯(cuò)---la is not defined
        }

        fn();

        匿名函數(shù)的作用:

        1、通過(guò)匿名函數(shù)可以實(shí)現(xiàn)閉包。

        2、模擬塊級(jí)作用域,減少全局變量。
        亚洲无码Aⅴ,视频1页精品,欧美系列一区二区,曰韩色999
            • <tbody id="9je1r"></tbody><tbody id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></tbody>
            • <acronym id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></acronym>
              报价| 阜宁县| 上饶市| 灵丘县| 乌海市| 怀化市| 晋宁县| 巴塘县| 忻城县| 东乡族自治县| 巩义市| 祥云县| 库伦旗| 延长县| 建始县| 甘德县| 东辽县| 平顶山市| 洮南市| 金山区| 西乌| 普安县| 通河县| 庆安县| 通河县| 襄城县| 罗田县| 兴和县| 花莲县| 永丰县| 镇平县| 台北市| 文安县| 金华市| 伊春市| 专栏| 凉城县| 开封市| 绥芬河市| 天峨县| 凤城市|