近期在项目中使用jsHint,偶然发现代码中包含arguments.callee会无法通过验证。如此“高级”的特性不让用,大大降低代码的骚劲!深入了解了一番才知道其中另有乾坤。
正在执行的函数体中arguments对象的callee属性指向该函数本身,可以用来在函数体中调用函数本身,常见的递归调用:
function fFactorial (nNum) { if (nNum <= 1) { return 1; } return nNum * arguments.callee(nNum - 1); // nNum * fFactorial(nNum - 1); }
其实,这种情况下可以直接使用函数名调用fFactorial函数,而在js中使用匿名函数则无法获知函数名,arguments.callee似乎成了不二之选:
如有疑问or建议可通过以下方式跟我取得联系.
Q Q: | 373435871 |
---|---|
Email: | jackness1208@gmail.com |