JavaScript递归操作实例浅析

前端之家收集整理的这篇文章主要介绍了JavaScript递归操作实例浅析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_301_0@本文实例分析了JavaScript递归操作。分享给大家供大家参考,具体如下:


@H_3010@

问题


@H
301_0@一个简单的递归,求n的阶乘:


<div class="jb51code">
<pre class="brush:js;">
function factorial(n){
if (n<=1)
{
return 1;
}else{
return factorial(n-1)*n;
}
}

@H_502_9@ @H_301_0@如果像下面这样使用它,则会出错:

@H_502_9@ @H_301_0@因为fcopy指向的函数实体调用了factorial,而factorial已经被释放。

@H_301_0@

解决的办法

@H_301_0@ @H_301_0@执行流进入函数时会创建函数的运行环境(作用域链等),包括 arguments 这个特殊对象,arguments对象有个属性指向函数本身:arguments.callee 。

@H_502_9@ @H_301_0@不过callee在严格模式下不可用。

@H_301_0@函数表达式

@H_502_9@ @H_301_0@这并非使用了什么新的技术,只是在原来概念上的一种应用,在定义 factorial 时,直接创建一个函数,再将此函数的引用赋值给factorial。

@H_301_0@更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《

@H_
301_0@希望本文所述对大家JavaScript程序设计有所帮助。

原文链接:https://www.f2er.com/js/44754.html

猜你在找的JavaScript相关文章