什么是匿名透明递归,就是递归调用的时候不需要知道函数名,也不需要理解参数。用到的知识点:
1、arguments对象的callee属性,取得当前函数对象,实现函数匿名引用
2、Function对象的apply方法,调用一个方法,并传入this指针和arguments对象,这样就实现参数透明传递
<script type="text/javascript">
<!--
(function(s, n, o) {
alert(n);
if (n < 5) {
n ++;
arguments.callee.apply(this, arguments);
}
})("test", 0, {a : 1});
//-->
</script>
<!--
(function(s, n, o) {
alert(n);
if (n < 5) {
n ++;
arguments.callee.apply(this, arguments);
}
})("test", 0, {a : 1});
//-->
</script>