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

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

    javascript匿名函數的用法

      摘要:

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

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

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

      function f() {return 10;}

      return f();

      function f() {return 20;}

      var f = 30;

      })();

      console.log(f);

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

      ① 不能把函數命名為eval或arguments

      ② 不能把參數命名為eval或arguments

      ③ 不能出現兩個命名參數同名的情況

      發生以上情況就會導致語法錯誤,代碼無法執行。

      函數定義

      函數定義分為三種

      1、構造函數

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

      2、普通定義

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

      3、函數式定義

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

      這三種方式都可以定義函數fun。

      參數

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

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

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

      }

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

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

      函數不能重載,只能重寫

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

      復制代碼 代碼如下:

      function add(num) {

      return num + 100;

      }

      function add(num) {

      return num + 200;

      }

      var result = add(100) //300

      注意:函數在執行完return語句之后停止并立即退出。

      函數種類

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

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

      }

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

      匿名函數,顧名思義就是沒有函數名。例如

      function() {}

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

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

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

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

      例子:

      復制代碼 代碼如下:

      (function(x, y) {

      alert(x + y);

      })(2,3);

      //alert(5)

      2和3將會作為參數傳遞給x和y

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

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

      復制代碼 代碼如下:

      var f = (function() {

      var f = 30;

      function f() {return 10;}

      function f() {return 20;}

      return f();

      })();

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

    【javascript匿名函數的用法】相關文章:

    Javascript函數的定義和用法分析08-15

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

    Javascript的this用法簡述08-15

    淺析jQuery 遍歷函數javascript08-06

    Javascript中typeof 用法歸納09-27

    javascript分析運算符用法08-07

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

    最常用的20個javascript方法函數09-10

    JavaScript日期時間格式化函數08-29

    關于asp 的常用函數用法10-11

    主站蜘蛛池模板: 国产精品偷伦视频免费观看了 | 国产成人1024精品免费| 久久精品人妻一区二区三区| 97久久精品国产精品青草 | 久久久91精品国产一区二区三区| 在线亚洲欧美中文精品| 国产精品毛片一区二区| 91麻豆国产福利精品| 一本久久a久久精品亚洲| 国产免费久久精品丫丫| 四虎精品影院永久在线播放| 国产精品无码久久综合| 亚洲精品无码永久在线观看你懂的| 国产午夜福利精品久久| 欧美成人精品一级高清片| 国产午夜无码精品免费看| 亚洲精品乱码久久久久久| 欧美精品福利视频一区二区三区久久久精品 | 麻豆精品三级全部视频| 99热这里只有精品6国产免费| 99久久免费国产精品热| 久久精品中文字幕无码绿巨人| 亚洲国产主播精品极品网红| 国产内地精品毛片视频| 国产精品超碰12396| 香蕉国产精品频视| 老司机69精品成免费视频| 成人区人妻精品一区二区不卡视频 | 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 免费短视频软件精品一区二区| 国产A√精品区二区三区四区| 久久精品国产99国产精品澳门 | 乱人伦人妻精品一区二区| 成人精品一区二区三区免费看 | 久久国产精品成人片免费| 亚洲综合精品香蕉久久网| 亚洲精品成人片在线观看| 一区二区日韩国产精品| 一本色道久久88—综合亚洲精品| 中文字幕精品无码一区二区| 在线观看国产精品普通话对白精品 |