<strike id="3tkic"><sup id="3tkic"></sup></strike>

  1. <ul id="3tkic"></ul>
      <b id="3tkic"><legend id="3tkic"></legend></b>
      <b id="3tkic"><meter id="3tkic"></meter></b>

    • <strike id="3tkic"></strike>

      <blockquote id="3tkic"></blockquote>

    • 亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l

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

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

      匿名函數(shù):沒(méi)有實(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ù)是沒(méi)有名字的,即匿名函數(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 (){

          //由于沒(méi)有執(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中是沒(méi)有塊級(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(){}等沒(méi)有自己的作用域。如果有,出了自己的作用域,聲明的變量就會(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í)作用域,減少全局變量。
      亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l
      <strike id="3tkic"><sup id="3tkic"></sup></strike>

      1. <ul id="3tkic"></ul>
          <b id="3tkic"><legend id="3tkic"></legend></b>
          <b id="3tkic"><meter id="3tkic"></meter></b>

        • <strike id="3tkic"></strike>

          <blockquote id="3tkic"></blockquote>

        • 蒙山县| 鄂托克旗| 镇安县| 达孜县| 连江县| 庆元县| 隆化县| 崇信县| 茶陵县| 同仁县| 万全县| 漳平市| 青铜峡市| 松阳县| 措勤县| 武冈市| 阿拉尔市| 揭西县| 平凉市| 韶山市| 丽江市| 乡宁县| 雷州市| 玛多县| 恩施市| 无棣县| 江陵县| 石首市| 屏东县| 马山县| 唐海县| 衡山县| 泸溪县| 城步| 阳高县| 盘山县| 沅江市| 绥滨县| 太仆寺旗| 从化市| 武城县|