javascript匿名函數小結__函數

來源:互聯網
上載者:User

上一篇關於javascript匿名函數的部落格:http://blog.csdn.net/wusuopuBUPT/article/details/14522631


首先列舉下常見的幾種聲明javascript函數的方法:

function demo(){    // 函數主體部分}

它的實質,是將函數主體賦值給了demo變數,這個函數主體是:
function(){    // 函數主體部分}

所以,demo() 函數也可以這樣定義:
var demo=function(){    // 函數主體部分}

可以這樣來調用函數:
demo();

小括弧的作用是將demo變數所指向的函數主體(代碼塊)作為函數執行。


如果不加小括弧,函數主體僅僅是一段文本,一段字串,不會執行。

舉個栗子:

<script>var total = 1;var demo = function() {total = 10;return total;}alert(demo); //輸出函數體alert(total); // 1alert(demo()); // 10alert(total); // 10</script>


匿名函數

匿名函數,可以理解為定了一個函數,但是沒有將它賦值給變數。

定義方式如下:

function([parameters]){    statements;    [return運算式;]}


匿名函數的調用:


匿名函數沒有函數名,也沒有指向它的變數,不能像具名函數一樣可以在任何地方調用,匿名函數必需在定義後立即執行。

上面已經提到,小括弧的作用是將代碼塊作為函數執行,在小括弧內一樣可以傳遞參數,所以,匿名函數可以使用小括弧來調用和執行:

(function([parameters]){    // 函數主體部分})([parameters]);

第一個小括弧將函數體包圍起來,第二個小括弧執行函數體,[parameters]是要傳遞的參數列表。


例子1:
(function(){    alert("匿名函數");})();

例子2:
(function(x,y){    alert(x+y);})(1,2);

注意:最後要加上分號“ ; ”,這不是一個代碼塊,而是調用函數。

例子3:用匿名Function Compute1+2+3+...+99+100的值。

<script language="JavaScript" type="text/javascript">(function(m,n){    var total=0;    if(m>=n){        alert(" 數值範圍不正確。 ");        return false;    }    for(var i=m;i<=n;i++){        total+=i;    }    alert(total);})(1,100);</script>

儲存並執行代碼,彈出警告框,顯示 5050 ,匿名函數成功執行了。


例子4: 有傳回值的匿名函數
<script language="JavaScript" type="text/javascript">alert(    (function(m,n){        var total=0;        if(m>=n){            alert(" 數值範圍不正確。 ");            return false;        }        for(var i=m;i<=n;i++){            total+=i;        }        return total;    })(1,100)  // 這裡不要加分號);</script>


儲存並執行代碼,結果與例子3相同。


總結:函數名是對函數主體(代碼塊)的引用,小括弧是將代碼塊作為函數執行。

參考:http://www.itxueyuan.org/view/6314.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.