淺談JS函數(shù)定義方式的區(qū)別
關(guān)于JS的函數(shù)定義方式有以下兩種:
(1)典型的函數(shù)聲明
function slide(arguments){
//...code
}
(2)以函數(shù)表達(dá)式的形式定義函數(shù)
var slide = function(arguments){
//...code
}
雖然上面兩種方式邏輯上是等價的,但是還是有點小區(qū)別:
區(qū)別一:例一中的函數(shù)會在代碼執(zhí)行以前被加載到作用域中,而例二則是在代碼執(zhí)行到那一行的時候才會有定 義;
區(qū)別二:函數(shù)聲明會給函數(shù)指定一個名字,而函數(shù)表達(dá)式則是創(chuàng)建一個匿名函數(shù),然后將這個匿名函數(shù)賦給一個變量;
看下面例子:
function factorial(num){
if(num<=1){
return 1;
}
else {
return num*arguments.callee(num-1);
}
}
var anotherFactorial = factorial;
factorial = null;
console.log(anotherFactorial);//輸出factorial(){},有函數(shù)名
若是以函數(shù)表達(dá)式定義
var factorial = function(num){
//...code
}
//...code
console.log(anotherFactorial);//輸出function(){},匿名函數(shù)
以上就是小編為大家?guī)淼臏\談JS函數(shù)定義方式的區(qū)別全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
獲取css樣式表內(nèi)樣式的js函數(shù)currentStyle(IE),defaultView(FF)
JS從樣式表取值的函數(shù),IE中以currentStyle,firefox中defaultView來獲取,需要的朋友可以參考下。2011-02-02

