最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js递归和定时器的实例解析

来源:动视网 责编:小OO 时间:2020-11-27 20:25:28
文档

js递归和定时器的实例解析

递归:是一个函数通过调用自身的情况下构成的。首先上个例子。这是一个经典的递归阶乘函数,但是在js中这么调用可能会出现一些错误:例如如下代码。以上代码先把factorial()函数保存在变量anotherFactorial中,然后将factorial变量设置为null,结果指向原始函数的引用只剩下一个。但再接下来调用anotherFactioral()时候,由于必须执行factorial函数,而factoial已经不再是函数,所以就会导致错误,再这种情况下,使用arguments.callee可以解决这个问题。arguments.callee是一个指向正在执行的函数的指针,因此可以用来实现对函数的递归调用。例如。arguments.callee 优点。
推荐度:
导读递归:是一个函数通过调用自身的情况下构成的。首先上个例子。这是一个经典的递归阶乘函数,但是在js中这么调用可能会出现一些错误:例如如下代码。以上代码先把factorial()函数保存在变量anotherFactorial中,然后将factorial变量设置为null,结果指向原始函数的引用只剩下一个。但再接下来调用anotherFactioral()时候,由于必须执行factorial函数,而factoial已经不再是函数,所以就会导致错误,再这种情况下,使用arguments.callee可以解决这个问题。arguments.callee是一个指向正在执行的函数的指针,因此可以用来实现对函数的递归调用。例如。arguments.callee 优点。


本文主要介绍了js递归和定时器的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧

递归:是一个函数通过调用自身的情况下构成的;

首先上个例子:

这是一个经典的递归阶乘函数,但是在js中这么调用可能会出现一些错误:例如如下代码

以上代码先把factorial()函数保存在变量anotherFactorial中,然后将factorial变量设置为null,结果指向原始函数的引用只剩下一个。但再接下来调用anotherFactioral()时候,由于必须执行factorial函数,而factoial已经不再是函数,所以就会导致错误,再这种情况下,使用arguments.callee可以解决这个问题。

arguments.callee是一个指向正在执行的函数的指针,因此可以用来实现对函数的递归调用。

例如:

arguments.callee 优点:

1、可以确保无论怎样调用函数都不会出问题。因此编写递归函数时候,使用argments.callee总比使用函数名更保险;

注意点:严格模式下无效,会报错

严格模式下写法:

二、与定时器的结合使用:

js是单线程语言,但他允许通过设置超时调用和间歇时间来调度代码在特定的时刻执行。前者是在指定的时间过后执行代码,而后者则是每隔指定的时间就执行一次代码。

参数:要执行的代码 和 以 毫秒表示时间

注意点:结束

超时调用的代码都是在全局作用域执行的,因此函数中this的值在非严格模式下指向window对象,在严格模式下是undefined;

实际应用中:

使用超时调用来模拟间歇调用是一种最佳模式,在开发环境下,很少使用真正的间歇调用,原因是后一个间歇调用可能会在前一个间歇调用之间启动。

如果像上面那样使用超时调用,则可以避免这一点。所以不要使用间歇调用;

更多js 递归和定时器的实例解析相关文章请关注PHP中文网!

文档

js递归和定时器的实例解析

递归:是一个函数通过调用自身的情况下构成的。首先上个例子。这是一个经典的递归阶乘函数,但是在js中这么调用可能会出现一些错误:例如如下代码。以上代码先把factorial()函数保存在变量anotherFactorial中,然后将factorial变量设置为null,结果指向原始函数的引用只剩下一个。但再接下来调用anotherFactioral()时候,由于必须执行factorial函数,而factoial已经不再是函数,所以就会导致错误,再这种情况下,使用arguments.callee可以解决这个问题。arguments.callee是一个指向正在执行的函数的指针,因此可以用来实现对函数的递归调用。例如。arguments.callee 优点。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top