当前位置:首页 > 日记 > 正文

用于实现匿名递归的Javascript实例代码

用于实现匿名递归的Javascript实例代码
递归是一种常见的编程技巧。实名递归认为每个人都不是陌生的,但是如果你想实现匿名递归呢例如,如果您想要返回匿名递归函数,或者定义匿名递归函数并直接调用它,那么如何进行呢本文将讨论它在未来的实现。

实名递归

让我们从真正的名字开始,或者使用阶乘的最简单的例子。
函数事实(n){
如果(n<2){
返回N;
{人}
返回n *事实(n - 1);
}
}
console.log(事实(5));
递归要求您调用自己,如果函数有名称,它太简单了。

利用变量实现递归

函数也可以分配给变量,但是为了实现递归,函数体仍然依赖于变量名。
函数(n){
如果(n<2){
返回N;
{人}
返回n×f(n - 1);
}
}
console.log(F(5));
应该说,这种方式与事实上没有本质的区别。

匿名递归

现在我们来讨论匿名递归的实现。

设想

如果要返回匿名递归函数,或者定义匿名递归函数,并直接调用它:
(函数(n){)
如果(n<2){
返回N;
{人}
返回n *(n - 1);
}
})(5);
如果我们没有名字,代码中的问号不知道要填写什么,也没有递归。这个时候我们该做什么此时,请求参数对象。

参数对象

在Javascript函数中,参数对象代表实际调用的参数对象。在递归函数中,实际上我们不能定义形参n:
功能factnoparam(){
如果(参数{ 0 } < 2){
返回参数{ 0 };
{人}
返回参数{ 0 } * factnoparam(参数{ 0 } - 1);
}
}
console.log(factnoparam(5));
只要我们在调用时传递实际参数,就可以使用参数{ 0 }来获得实际传入参数的值。

如果有更多参数,则可以通过参数{ 1 }、参数{ 2 }等获得。
arguments.callee属性

参数可用于获取参数,我相信你可能已经知道,但争论的对象的属性,所谓的callee.arguments.callee代表本身的功能。这意味着什么事实上,我们可以完全写出这样的事实。
函数事实(n){
如果(n<2){
返回N;
{人}
返回N×arguments.callee(n - 1);
}
}
console.log(事实(5));
所以它仍然是递归的。因为arguments.callee实际上等于事实。

然后,在这里,有此属性的帮助,这是不难实现的匿名递归,只要是改变arguments.callee:
(函数(n){)
如果(n<2){
返回N;
{人}
返回N×arguments.callee(n - 1);
}
})(5);
如果您需要它,也可以将它作为匿名递归返回。

这里介绍了javascript的匿名递归,希望对您的学习有所帮助,希望大家多多支持。

相关文章

PS是如何绘制三维高尔夫球的

PS是如何绘制三维高尔夫球的

绘制,高尔夫球,电脑软件,PS,用PS做高尔夫球很复杂。现在我们将与大家分享生产过程和截图。同时,我们希望这一经验能起到吸引砖和玉的作用。此经验仅供参考。 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 …

介绍:新的文件和编辑

介绍:新的文件和编辑

编辑文件,文件,电脑软件,编辑,InDesign是一个排版工具Adobe。你可以做一个单页,一本图画书,一本书,等等。PS,AI,软件应该很快适应软件,及操作快捷键几乎是相同的。以下是新文件和图片编辑一个简短的简介。 1。打开文件、文件或新建文档中的新文档…

PS简单地合成一个教程移动广告

PS简单地合成一个教程移动广告

移动广告,教程,简单,电脑软件,PS,如何使用PS制作手机广告现在我们教你简单地合成一个手机广告。这并不难。它主要是合成手机的图片和背景地图。好的,让我们看看下面的具体步骤。 方法/步骤: 1。打开软件并准备设计材料 2。将图片加载到软…

ps如何把中的文字变成闪烁的文本。

ps如何把中的文字变成闪烁的文本。

文字,文本,闪烁,电脑软件,ps,人们通常会看到一些图片上的图片会闪烁,非常有趣,下面看看如何使用PS吧!The material is as follows: 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1。打开PS软件,这里我用的CS6…

关于JSP中cookie丢失的问题(详细说

关于JSP中cookie丢失的问题(详细说

详细说明,电脑软件,JSP,cookie,在JSP中,如果cookie不设置路径,则会出现cookie丢失问题。 曲奇饼干=新的饼干(cookiename,值); (3600)cookie.setmaxage; Cookie.setPath(/); response.addcookie(饼干); 在JSP上述cookie丢失问题解释给你的萧边。我们希望能…

如何在Dreamweaver网页上制作带有

如何在Dreamweaver网页上制作带有

列表,下拉菜单,网页,如何在,电脑软件,当你制作一个网页时,你需要选择男人和女人,所以你需要添加一个下拉菜单。今天我们来看一下DW的下拉菜单教程。 软件名称:Adobe Dreamweaver CC 2017 v17.0中文破解版(附破解补丁)64位软件大小:758mb更新时间…

如何快速关闭/打开网页一秒钟关闭

如何快速关闭/打开网页一秒钟关闭

解决方案,网页,打开网页,快速,电脑软件,问题: 如何在一秒钟内快速关闭网页,然后快速恢复刚刚关闭的网页 答案uff1a 一个快速键的组合,大多数浏览器目前支持Ctrl + w组合键快速关闭当前浏览的网页。如果你想快速恢复的网页,你就关机,只需按下Ct…

京东的模板前页右下角京东自覆盖EC

京东的模板前页右下角京东自覆盖EC

模板,覆盖,京东,前页,右下角,问题: 学习ecshop系统,利用京东模板的模仿,发现首页右上角;Jingdong自覆盖区、县的信息,我不知道在哪里修改 答案uff1a 后来,看到index.dwt文件在京东模板文件,没有page_footer.lbi库文件;自京东覆盖县的信息,并检查he…

PS细化高清钻石戒指产品教程向杰

PS细化高清钻石戒指产品教程向杰

产品,教程,细化,钻石戒指,电脑软件,这是我的第一个教程,很多细节都没有注意到,步骤不是很严格的,我希望你提出一个建议。事实上,我的测绘技术不好,如果处理不好,请大家真的做的教程很累,尤其是很多额外的繁琐步我第一次做的,但是没必要做。 最终效…

在Ubuntu下安装mysql并彻底卸载MyS

在Ubuntu下安装mysql并彻底卸载MyS

卸载,安装,电脑软件,Ubuntu,MySQL,1。安装MySQL: UDO apt-get install mysql服务器 UDO apt-get install mysql客户端 UDO apt-get安装PHP5 MySQL(用于连接PHP和MySQL) 查看mysql是否运行 aux grep MySQL | 启动命令 2。删除MySQL 按顺序执行…

word2013的排版课程

word2013的排版课程

课程,电脑软件,我们使用最常用的Office Word来布局自己的文章,那么如何做如何布局更快、更好的不使用空格键一敲,下面就由小word2013教程分享创作技巧,希望能对你有帮助。 word2013排版教程如下: 段落缩进 步骤1:首先选择段落, 第二步:然后选择…