admin 管理员组文章数量: 887021
javascript
argument为函数内部对象,包含传入函数的所有参数
arguments.callee代表函数名,多用于递归调用
防止函数执行与函数名紧紧耦合的现象,就是test函数,到递归调用test函数本身时,原来需要test(),现在只需要arguments.callee();
对于没有函数名的匿名函数也非常起作用。举例如下:
function factorial(num) { //求阶乘if (num <= 1) {return 1;} else {return num * arguments.callee(num - 1); //arguments.callee代表factorial}
}
var trueFactorial = factorial; //trueFactorial是第一个factorial函数
factorial = function () { //新的factorial函数return 0;
}
alert(trueFactorial(5)); //结果为120,因为js中函数没有重载,所以如果递归调用时使用函数名,则执行最后一个该函数名的函数,即返回0
alert(factorial(5));//结果为0
匿名函数的递归:
var num = (function (num) {if (num <= 1) {return 1;} else {return num * arguments.callee(num - 1);}
})(5);
alert(num); //结果为120
本文标签: javascript
版权声明:本文标题:javascript 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686497885h2385.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论