關於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(){},有函數名
若是以函數表達式定義
var factorial = function(num){ //...code } //...code console.log(anotherFactorial);//輸出function(){},匿名函數
以上就是小編為大家帶來的淺談JS函數定義方式的區別全部內容了,希望大家多多支持~