JavaScript ªº¨ç¼Æ¤]¥i¥H¤ä´©»¼°j©I¥s¡]Recursive Calls¡^¡A¤]´N¬O»¡¡A¤@Ó¨ç¼Æ¥i¥H©I¥s¥¦¦Û¤v¡C¨Ò¦p¡A¹ï©ó¶¥¼¨ç¼Æ¨Ó»¡¡A§Ú̦³ n! = n*(n-1)!¡A¦]¦¹§ÚÌ¥i¥H¼g¤@Ó»¼°j¦¡ªº¶¥¼¨ç¼Æ¡A¨Ò¦p¡G
¨äì©lÀɮפº®e¦p¤U¡G
JavaScript ªº¨ç¼Æ¥i±µ¨ü¡u¥iÅÜӼƪº¿é¤J¤Þ¼Æ¡v (Input Arguments of Variable Length)¡A³o¬O¦]¬°¿é¤J¤Þ¼Æ¥i¦s©ñ¦b¨ç¼Æª«¥ó¥»¨ªº¤@ÓÄæ¦ì¡]©Î©Ê½è¡^ arguments ¤§¤¤¡A¦¹Äæ¦ì©Ò¦s©ñªº¸ê®Æ¬O¤@Ó°}¦C¡AJavaScript ¥i¥Î¨ä arguments.length ±oª¾¯u¥¿ªº¤Þ¼ÆÓ¼Æ¡C¨Ò¦p¡A§ÚÌ¥i¼g¤@Ó¨ç¼Æ¡A¨Ó±N¿é¤J¤Þ¼Æ¥HµL§Ç¦Cªí©Î¦³§Ç¦Cªíªº¤è¦¡Åã¥Ü¡A¦¹¨ç¼Æªºì©l½X¦p¤U¡G
¦b¤Wz¨ç¼Æ¤¤¡Atype ¬O²Ä¤@Ӥ޼ơ]¥i¥H¬O "o" ©Î¬O "u"¡^¡A¦Ó«áÄòªº¨ä¥L¿é¤J¤Þ¼Æ¡A«h¬O¥H list.arguments ³oÓ°}¦C¨Óªí¥Ü¡A¨ä¤¤ list ¬O¨ç¼Æªº¦WºÙ¡C¨Ò¦p¡Alist.arguments[0] ´N¬O type ¥»¨¡Alist.arguments[1] ´N¬O¦b type ¤§«áªº²Ä¤@Ӥ޼ơAlist.arguments[2] «h¬O²Ä¤GÓ¡A¨Ì¦¹Ãþ±À¡C
¨Ï¥Î¤Wz¨ç¼Æ¥i²£¥Í¥ô·NӼƪºµL§Ç©M¦³§Ç¦Cªí¡A¦p¤U¡G
¨äì©l½X¬°¡G
JavaScript µ{¦¡³]p»PÀ³¥Î¡G¥Î©óºô¶¥Î¤áºÝ