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);