首頁  >  文章  >  web前端  >  淺談JS函數定義方式的區別

淺談JS函數定義方式的區別

高洛峰
高洛峰原創
2016-12-08 13:53:461168瀏覽

關於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(){},有函数名

   

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn