函式表示式 遞迴

2021-09-11 01:31:11 字數 618 閱讀 7299

遞迴函式是在乙個函式通過名字呼叫自身的情況下構成的

function f(num)  else 

}f(3) // 6

var anothe***ctorial = f;

f = null; //f指向乙個空指標

alert(anothe***ctorial(4)); //出錯!

arguments.callee 是乙個指向正在執行的函式的指標,因此可以用它來實現對函式的遞迴呼叫

function f(num)  else 

}f(3) // 6

var anothe***ctorial = f;

f = null; //f指向乙個空指標

alert(anothe***ctorial(4)); //24

但在嚴格模式下,不能通過指令碼訪問 arguments.callee ,訪問這個屬性會導致錯誤。不過,可以使用命名函式表示式來達成相同的結果

var factorial = (function f (num)  else 

});factorial(4) //24

這種方式在嚴格模式和非嚴格模式下都行得通

函式表示式

函式定義有以下兩種方式 一種是函式宣告,一種是函式表示式。函式宣告 在執行 之前會先讀取函式宣告,即函式宣告提公升。函式表示式 常用語法形式是常規的變數賦值語句,即建立乙個匿名函式並賦值給乙個變數。函式表示式在使用之前必須賦值,否則會出錯,這點與函式宣告提公升不同。能夠將匿名函式作為其他函式的值進行...

函式表示式

定義函式的方式有兩種 一種是函式宣告,另一種是函式表示式 函式宣告語法格式如下 function functionname arg0,arg1,arg2 關於函式宣告,有乙個重要的特徵就是函式宣告提公升,意思是在執行 之前會先讀取函式宣告 函式表示式語法格式如下 var functionname f...

函式表示式

函式表示式在使用前必須先賦值。函式表示式,使用前必須先賦值var functionname function arg0,arg1 匿名函式或拉姆達函式 arguments.callee 是乙個指向正在執行的函式的指標,因此可以用它來實現對函式 的遞迴呼叫,function factorial num...