JavaScript 函數(shù) 使用 callee
■知識點
callee是arguments對象的厲性,它引用當前arguments對象所在的函數(shù)。使用該屬性可以在函數(shù)體內(nèi)調(diào)用函數(shù)自身。在匿名函數(shù)中,callee屬性比較有用,例如,利用它可以設(shè)計遞歸調(diào)用。
■實例設(shè)計
在下面的示例中,使用arguments.callee獲取匿名函數(shù),然后通過函數(shù)的length屬性獲取函數(shù)形參個數(shù),最后比較實參個數(shù)與形參個數(shù),以檢測用戶傳遞的參數(shù)是否符合要求。
function f(x, y, z){
var a = arguments . length; //獲取函數(shù)實參的個數(shù)
var b = arguments . callee. length; //獲取函數(shù)形參的個數(shù)
if (a != b) { //如果形參和實參個數(shù)不相等,則提示錯誤信息
throw new Error ("傳遞的參數(shù)不匹配");
}
else{ //如果形參和實參個數(shù)相同,則返回它們的和
return x + y + z;
}
}
console.log(f(3, 4, 5)); //返回值為12
點擊加載更多評論>>