1. 程式人生 > >JS中函式的兩種定義方法

JS中函式的兩種定義方法

定義函式

在JavaScript中,定義函式的方式如下:

function abs(x) {
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}

上述abs()函式的定義如下:

  • function指出這是一個函式定義;
  • abs是函式的名稱;
  • (x)括號內列出函式的引數,多個引數以,分隔;
  • { ... }之間的程式碼是函式體,可以包含若干語句,甚至可以沒有任何語句。

請注意,函式體內部的語句在執行時,一旦執行到return時,函式就執行完畢,並將結果返回。因此,函式內部通過條件判斷和迴圈可以實現非常複雜的邏輯。

如果沒有return語句,函式執行完畢後也會返回結果,只是結果為undefined

由於JavaScript的函式也是一個物件,上述定義的abs()函式實際上是一個函式物件,而函式名abs可以視為指向該函式的變數。

因此,第二種定義函式的方式如下:

var abs = function (x) {
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
};

在這種方式下,function (x) { ... }是一個匿名函式,它沒有函式名。但是,這個匿名函式賦值給了變數abs,所以,通過變數abs

就可以呼叫該函式。

上述兩種定義完全等價,注意第二種方式按照完整語法需要在函式體末尾加一個;,表示賦值語句結束。

摘自:廖雪峰的官方網站