1.遞迴:
function
digui
(num) else
}var d = digui;
digui = null;
d(3);
改進:用arguments.callee(num-1) 代替 digui(num-1) arguments.callee()是指向引數所在的函式的指標,code如下:
function
digui
(num) else
}var d = digui;
digui = null;
d(3)
但是,arguments.callee在嚴格模式下會報錯,故用命名函式表示式來代替:
var digui = (function
f(num) else
});
命名函式表示式是最完美的解決方案 JS 函式表示式
引數1,引數2.call使用語法 函式名 方法名.call 物件,屬性1,屬性2.作用 可以改變this的指向 不同點 引數傳遞方式不同 bind是複製乙個方法或者函式 xw.say.call xh 注 math.random 返回介於 0 包含 1 不包含 之間的乙個隨機數 函式中幾個屬性 了解 ...
函式表示式
函式定義有以下兩種方式 一種是函式宣告,一種是函式表示式。函式宣告 在執行 之前會先讀取函式宣告,即函式宣告提公升。函式表示式 常用語法形式是常規的變數賦值語句,即建立乙個匿名函式並賦值給乙個變數。函式表示式在使用之前必須賦值,否則會出錯,這點與函式宣告提公升不同。能夠將匿名函式作為其他函式的值進行...
函式表示式
定義函式的方式有兩種 一種是函式宣告,另一種是函式表示式 函式宣告語法格式如下 function functionname arg0,arg1,arg2 關於函式宣告,有乙個重要的特徵就是函式宣告提公升,意思是在執行 之前會先讀取函式宣告 函式表示式語法格式如下 var functionname f...