關於JS的函數定義方式有以下兩種:
(1)典型的函數宣告
function slide(arguments){ //...code }
(2)以函數表達式的形式定義函數
方式邏輯上是等價的,但是還是有點小區別:區別一:例一中的函數會在程式碼執行以前被載入到作用域中,而例二則是在程式碼執行到那一行的時候才會有定義;差異二:函數宣告會為函數指定一個名字,而函數表達式是建立一個匿名函數,然後將這個匿名函數賦給一個變數;看下面範例:var slide = function(arguments){ //...code }
function factorial(num){ if(num<=1){ return 1; } else { return num*arguments.callee(num-1); } } var anotherFactorial = factorial; factorial = null; console.log(anotherFactorial);//输出factorial(){},有函数名