<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • javascript匿名函數(shù)的用法

    時間:2024-09-13 21:24:35 JavaScript 我要投稿
    • 相關(guān)推薦

    javascript匿名函數(shù)的用法

      摘要:

      本文講解的是javascript最基礎(chǔ)也是最重要的東西--函數(shù),之所以寫這篇文章,是因為面試的時候問到了,也算是溫故而知新了。

      先上個例子,如果你看懂了,說明你已經(jīng)理解了本文要講的。

      復(fù)制代碼 代碼如下:var f = (function() {

      function f() {return 10;}

      return f();

      function f() {return 20;}

      var f = 30;

      })();

      console.log(f);

      javascript高級程序設(shè)計中這樣描述函數(shù)--可以封裝任意多條語句,而且可以在任何地方、任何時候調(diào)用執(zhí)行。之前介紹過了strict mode,嚴格模式對函數(shù)有一些限制:

      ① 不能把函數(shù)命名為eval或arguments

      ② 不能把參數(shù)命名為eval或arguments

      ③ 不能出現(xiàn)兩個命名參數(shù)同名的情況

      發(fā)生以上情況就會導(dǎo)致語法錯誤,代碼無法執(zhí)行。

      函數(shù)定義

      函數(shù)定義分為三種

      1、構(gòu)造函數(shù)

      復(fù)制代碼 代碼如下:var fun = new Funciton();

      2、普通定義

      復(fù)制代碼 代碼如下:function fun() {}

      3、函數(shù)式定義

      復(fù)制代碼 代碼如下:var fun = function() {};

      這三種方式都可以定義函數(shù)fun。

      參數(shù)

      函數(shù)不介意傳遞進來多少個參數(shù),也不在乎傳進來的參數(shù)是什么數(shù)據(jù)類型。即便你定義的函數(shù)只接收兩個參數(shù),在調(diào)用這個函數(shù)時也未必一定要傳遞兩個參數(shù)。可以傳遞一個、三個甚至不傳遞參數(shù)。原因是參數(shù)在內(nèi)部是用一個數(shù)組來表示的。在函數(shù)體內(nèi)可以通過arguments對象來訪問參數(shù)數(shù)組,舉個例子

      復(fù)制代碼 代碼如下:function sayHi() {

      alert("Hello " + arguments[0] + "," + arguments[1]);

      }

      通過訪問arguments對象的length屬性來獲知有多少個參數(shù)。函數(shù)的length會返回函數(shù)的參數(shù)個數(shù)。

      注意:所有參數(shù)傳遞的都是值,不可能通過引用傳遞參數(shù)。

      函數(shù)不能重載,只能重寫

      如果定義了兩個名字相同的函數(shù),則該名字只屬于最后定義的函數(shù),舉個例子:

      復(fù)制代碼 代碼如下:

      function add(num) {

      return num + 100;

      }

      function add(num) {

      return num + 200;

      }

      var result = add(100) //300

      注意:函數(shù)在執(zhí)行完return語句之后停止并立即退出。

      函數(shù)種類

      函數(shù)分為兩種一種是有名函數(shù),另一種是匿名函數(shù)。例如下面的有名函數(shù)

      復(fù)制代碼 代碼如下:function fun() {

      }

      如果調(diào)用的話,只需要fun()就可以。

      匿名函數(shù),顧名思義就是沒有函數(shù)名。例如

      function() {}

      函數(shù)調(diào)用是通過函數(shù)名來調(diào)用,匿名函數(shù)怎么調(diào)用呢?一種就是將匿名函數(shù)賦給一個變量,讓這個變量充當(dāng)函數(shù)名。另一種就是用()來調(diào)用,例如下面三種方法

      1、(function() {return;}());

      2、(function() {return;})();

      3、function() {return;}();

      例子:

      復(fù)制代碼 代碼如下:

      (function(x, y) {

      alert(x + y);

      })(2,3);

      //alert(5)

      2和3將會作為參數(shù)傳遞給x和y

      下面就來講講最上面的例子,這個例子里面涉及到閉包,后面會說

      首先定義一個變量f,然后賦值一個匿名函數(shù),這里呢需要注意一點函數(shù)里所有變量的定義都會被前置,所以匿名函數(shù)里的執(zhí)行順序是

      復(fù)制代碼 代碼如下:

      var f = (function() {

      var f = 30;

      function f() {return 10;}

      function f() {return 20;}

      return f();

      })();

      外面的變量f和里面的變量f不在同一個作用域內(nèi)(閉包),所以互不影響。因為函數(shù)不能重載,所以外面變量f=(function f() {return 20;})();,所以最終輸出的是20。

    【javascript匿名函數(shù)的用法】相關(guān)文章:

    Javascript函數(shù)的定義和用法分析08-15

    JavaScript中常見的字符串操作函數(shù)及用法07-24

    Javascript的this用法簡述08-15

    淺析jQuery 遍歷函數(shù)javascript08-06

    Javascript中typeof 用法歸納09-27

    javascript分析運算符用法08-07

    JavaScript中push(),join() 函數(shù)實例詳解09-05

    最常用的20個javascript方法函數(shù)09-10

    JavaScript日期時間格式化函數(shù)08-29

    關(guān)于asp 的常用函數(shù)用法10-11

    主站蜘蛛池模板: 国产亚州精品女人久久久久久| 国产精品久久久久久| 亚洲精品高清国产一线久久| 桃花岛精品亚洲国产成人| 四虎成人精品无码| 欧美精品一区二区在线精品 | 免费精品一区二区三区第35| 亚洲中文久久精品无码| 国产精品嫩草影院一二三区| 99精品无人区乱码在线观看| 伊人久久精品影院| 精品国产青草久久久久福利| 国产成人亚洲精品91专区手机| 99RE6热在线精品视频观看| 日韩精品一区二区三区色欲AV| 中日精品无码一本二本三本| 免费视频成人国产精品网站 | 亚洲欧美精品伊人久久| 996久久国产精品线观看| 精品无码日韩一区二区三区不卡| 亚洲色精品aⅴ一区区三区| 日韩福利视频精品专区| 久久国产精品二国产精品 | 亚洲色图国产精品| 国产在视频线精品视频二代| 国产午夜精品无码| 精品国产一区二区三区久久久狼| 亚洲精品狼友在线播放| 亚洲精品乱码久久久久久不卡 | 国产综合精品一区二区三区| 亚洲精品无码专区在线在线播放| 午夜精品一区二区三区在线视 | 国产精品无码久久综合| 小辣椒福利视频精品导航| 亚洲av永久无码精品网站| 亚洲Av无码精品色午夜| 人妻熟妇乱又伦精品视频| 久久精品亚洲日本波多野结衣| 乱色精品无码一区二区国产盗| 久久亚洲精品中文字幕| 久久久精品人妻一区二区三区蜜桃|