JavaScript 的函數也可以支援遞迴呼叫(Recursive Calls),也就是說,一個函數可以呼叫它自己。例如,對於階乘函數來說,我們有 n! = n*(n-1)!,因此我們可以寫一個遞迴式的階乘函數,例如:
其原始檔案內容如下:
JavaScript 的函數可接受「可變個數的輸入引數」 (Input Arguments of Variable Length),這是因為輸入引數可存放在函數物件本身的一個欄位(或性質) arguments 之中,此欄位所存放的資料是一個陣列,JavaScript 可用其 arguments.length 得知真正的引數個數。例如,我們可寫一個函數,來將輸入引數以無序列表或有序列表的方式顯示,此函數的原始碼如下:
在上述函數中,type 是第一個引數(可以是 "o" 或是 "u"),而後續的其他輸入引數,則是以 list.arguments 這個陣列來表示,其中 list 是函數的名稱。例如,list.arguments[0] 就是 type 本身,list.arguments[1] 就是在 type 之後的第一個引數,list.arguments[2] 則是第二個,依此類推。
使用上述函數可產生任意個數的無序和有序列表,如下:
其原始碼為:
JavaScript 程式設計與應用:用於網頁用戶端