7.7 函式

  JavaScript 最基本的函式撰寫大致與 C 語言相同,在此不再多做敘述。範例:
<script type="text/javascript">
    function setPrompt(n) {
        if (document.getElementById(n).value == "請輸入帳號"
        || document.getElementById(n).value == "請輸入密碼")
            document.getElementById(n).value = "";
        else if (document.getElementById(n).value == "") {
            if (n == "usr")
                document.getElementById(n).value = "請輸入帳號";
            else
                document.getElementById(n).value = "請輸入密碼";
        }
    }
</script>

<form>
    <input type="text" id="usr" onfocus="setPrompt(this.id)"
    onblur="setPrompt(this.id)" value="請輸入帳號" />
    <input type="text" id="pwd" onfocus="setPrompt(this.id)"
    onblur="setPrompt(this.id)" value="請輸入密碼" />
    <input type="submit" value="登入" />
</form>
  然而,JavaScript 還有另一種函式的寫法,稱為 Function Expression,其函式名稱可省略。若該函式有命名,其名稱僅存在於函式定義內部。詳見以下說明:
// Function Expression 的語法
function() {
    document.write("function called");
}

// 第一種用法:將其儲存為一個變數,往後便可直接呼叫該變數
var func = function() {
    document.write("function called");
};
func();

// 第二種用法:將其作為另一個函式的參數,傳遞給另一個函式
function anotherFunc(passedFunc) {
    passedFunc.call(this);
}
anotherFunc(function() {
    document.write("function called");
});

// 第三種用法:定義後,立即呼叫自己
(function() {
    document.write("function called");
})();
  最後,想建立函式還有一種很特別的的作法,就是使用 Function() 建構函式 (Constructor)。範例:
var getSum = new Function('a', 'b', 'return a + b');
getSum(6, 8);