JavaScript中匿名函数的递归(使用arguments和callee属性实现)

JavaScript中匿名函数的递归调用 本文主要介绍了JavaScript中匿名函数的递归调用。具有很好的参考价值,下面跟着小编一起来看下吧 立即下载

arguments和callee属性

函数的内部调用函数本身的话,可以直接写函数的名字来实现,但是如果是匿名函数的话,这样的做法就行不通了。
解决的办法是有的,使用arguments和callee属性的话就可以调用函数本身了。arguments对象是函数被调用的时候自动生成的,而callee属性就是这个函数本身的引用,使用这种方法的话,即使是匿名函数也可以实现递归。
如下:可以使用setTimeout+arguments.callee组合来实现。

var count = 0;
(function(){
	if(count<10)
	{
		console.log(count+"callee");
	}
	count++;
   	arguments.callee();//递归
    //或
    //setTimeOut(arguments.callee,1000);
})();

 执行结果:

 

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=24a4nfrmebi84

从PCB走线到天线:用史密斯圆图搞定2.4GHz频段的阻抗匹配陷阱 本文深入探讨了2.4GHz频段PCB设计中阻抗匹配的挑战与解决方案,重点介绍了史密斯圆图在射频和天线阻抗匹配中的应用。通过实战案例和详细步骤,帮助工程师有效解决高频信号传输中的阻抗失配问题,提升物联网设备的通信性能。 阅读详情

相关推荐

微带线,带状线和接地共面波导的区别

微带线,带状线和接地共面波导的区别

sky_ying的博客 3万+

【JS】匿名函数回调函数递归函数

匿名函数,匿名函数就是函数的直接量;立即调用函数IIFE,主要为了产生作用域,避免全局变量污染;回调函数,函数是我定义的,我没有调用函数但函数执行了;递归函数,一个函数的内部又调用了自己

colourful_mole的博客 469

地瓜派RDK X5部署YOLOv11n避坑指南:从Softmax瓶颈到BPU加速的实战解析

本文详细解析了在地瓜派RDK X5开发板上部署YOLOv11n模型时,从性能暴跌到成功优化的全过程。核心在于通过配置`node_info`将模型中的Softmax算子强制在BPU上以int16精度运行,解决了因算子被分配到CPU导致的严重性能瓶颈。实战部署后,模型推理延迟从126ms降至10.8ms,FPS从7.9提升至92.3,实现了显著的性能优化。

beta5的博客 865

JS-函数(匿名-自调用-回调)-递归

JS-函数(匿名-自调用-回调)-递归 1 回顾 函数 1.1 函数概念 函数是具有特定功能的代码块。 函数在 JavaScript 是一种数据类型,属于对象类型,使用 typeof 判断返回 function。 1.2 声明函数的三种方式 // function 关键字方式 function 函数名(参数...) { 语句... } // 表达式形式 var 函数名 = function(参数...) { 语句... } // Function 构造函数 var 函

weixin_57218747的博客 980

二、租用AutoDL服务器与连接教程

点击右上角控制台,选择【租用新的实例】;,我这里使用的是xshell和xftp工具(自行下载)。打开本地目录和服务器目录,直接拖动文件。

zzf021122的博客 1329

11年电赛综合测评——单运放三角波发生器

目录 背景知识科普: 原理:局部负反馈+大环负反馈+积分器 仿真图如下: 背景知识科普: 反馈电路是将放大器输出信号(电压或电流)的一部分或全部,回收到放大器输入端与输入信号进行比较(相加或相减),并用比较所得的有效输入信号去控制输出,这就是放大器的反馈过程。 一、反馈放大器反馈极性的经验分析法—符号法 分析步骤1.在输入端上加上一个“+”或“-”的输入信号,按瞬时极性法标出反馈放大器中各个电极(基极b,集电极c,发射极e)电压的瞬时性。 2.判断经放大和反馈后得到的反馈信号Xf的瞬时极性

沉迷单车的追风少年 9906

JavaScript之函数(匿名函数和函数表达式)详解以及arguments对象的使用

什么是函数 把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用 函数的作用:代码的重用 函数的定义 1.函数声明 function 函数名(){ 函数体; } 函数声明的时候,函数体并不会执行,只要当函数被调用的时候才会执行。 函数的调用 函数名(); 函数体只有在调用的时候才会执行,可以多次调用。 function ...

dwjdj的博客 1041

【即插即用模块】卷积篇 | TCSVT 2025 | MFACB:多尺度膨胀融合,快速扩大感受野,多尺度特征精准捕捉!

本文提出了一种新型多尺度融合膨胀卷积模块MFACB,用于增强语义分割任务中的特征表达能力。该模块通过三分支串联膨胀卷积结构快速扩大感受野,采用双路径融合机制(基础信息路径+多尺度信息路径)实现高效上下文聚合。相比传统卷积块,MFACB在保持轻量化的同时显著提升了多尺度特征捕捉能力,实验表明其性能优于基础残差块。该模块支持自定义膨胀率和步长调整,可灵活嵌入不同网络阶段,适用于需要特征增强的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 311

前端提高篇(十一)JS进阶8函数参数及arguments

仅函数中有专为函数参数设置的对象伪数组,仅能用数组中的length和[下标]callee参数,指向函数自己arguments.length获取实参个数arguments[0]获取第一个形参arguments.callee.length可以获取形参个数,用在匿名函数arguments.callee也可以用在匿名函数的递归调用上。

2401_83977357的博客 1002

Vue3 - 详解实现网站接入微信扫码登录功能,微信授权生成登录二维码用户用手机扫描二维码登陆,微信扫描二维码登录详细流程及示例代码,支持弹框式、浏览器单独新开页显示,最新vue集成微信扫码授权登录!

vue3,nuxt3,PC网站,网页,微信扫码登录,微信登陆,vue3微信扫码登录,获取个人信息,扫码登录后如何获取用户手机号,微信扫码授权登录,vue3详细实现微信扫一扫登陆,pc网页微信登录,vue3集成微信扫码登录,详细流程和示例源码,第三方扫码登录,vue3微信扫码登录怎么新开一页,跳页显示二维码,内嵌登录二维码,iframe,iframe新页面弹出,弹出一个小窗口显示登录二维码,登录报错,微信扫码没反应,解决手机点登录报错没反应,官方文档,手机扫描微信二维码登录网站,最好用的插件,vue-wxlo

🏆 前端领域优质创作者 1万+

Unity3D实现视频和模型融合效果

在Unity中,视频和3D模型融合通常涉及到将视频表面内嵌到3D场景中。视频不影响模型的展示, 这可以通过使用Shader和Texture来实现。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。下面就让我们进入正文吧!提示:以下是本篇文章正文内容,下面案例可供参考本次介绍的就是视频和模型融合的实现,以后有其他的需要添加的会继续添加不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒。

心疼你的一切博客 5357

JavaScript里面四种函数(普通,匿名,自执行,递归)

目录 1.四种函数 1.1普通函数 1.1.1普通函数的定义: 1.2匿名函数 1.3.自执行函数 1.3.1可以使用多种运算符开头但一般用! 1.3.2使用()将函数及函数后的括号包裹 1.3.3使用()值包裹函数值 1.3.4三种自执行函数写法特点: 1.4递归函数 1.4.1.Arguments对象 2.函数的调用 2.1直接调用:函数名(参数1的值,参数2的值,....

上善若泪 1177

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Js中 caller 和callee 的区别

Js中caller和callee的区别 1 :caller 返回一个调用当前函数的引用 如果是由顶层调用的话 则返回null (举个栗子哈 caller给你打电话的人 谁给你打电话了 谁调用了你 很显然是下面a函数的执行 只有在打电话的时候你才能知道打电话的人是谁 所以对于函数来说 只有caller在函数执行的时候才存在) var callerTest = function()...

qq_42035758的博客 132

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【JavaScript】arguments.callee的作用及替换方案

arguments.callee的作用   arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 arguments 对象的函数。    请看下面这个非常经典的阶乘函数function factorial(num){ if (num <=1) { return 1;

'Ablaze 的专栏 2万+

arguments.callee[JS]

  argument代表当前函数的参数数组   arguments.callee表示引用当前正在执行的函数,或者说是调用arguments.callee的函数对象的引用,它给匿名函数提供了一种自我引用的方式。通过如下例子,可以更好的理解概念。   var func = function() { alert(func === arguments.callee);}func();     ...

技术造就人生 251

arguments.callee()

arguments.callee 在哪一个函数中运行,它就代表哪个函数。 一般用在匿名函数中。 在匿名函数中有时会需要自己调用自己,但是由于是匿名函数,没有名子,无名可调。 这时就可以用arguments.callee来代替匿名的函数。 一、Arguments 该对象代表正在执行的函数和调用他的函数的参数。 [function.]arguments[n] 参数function

_valora的博客 690

js中的callee

说明callee 属性的初始值就是正被执行的 Function 对象。callee 属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名函数的递归或者保证函数的封装性,例如下边示例的递归计算1到n的自然数之和。而该属性仅当相关函数正在执行时才可用。还有需要注意的是callee拥有length属性,这个属性有时候用于验证还是比较好的。arg

zhaopei1125的专栏 3904

JavaScript篇:函数间的悄悄话:callee和caller的那些事儿

大家好,我是小杨,一个做了6年前端的老司机。今天想和大家聊聊JavaScript中两个比较有意思的属性——arguments.callee和function.caller。别看它们平时不显山不露水,但在某些场景下还真能帮上大忙!

欢迎来到我的前端博客!这里汇集了关于前端开发的最新技术、实用工具和经验分享。我将为你提供详细的教程、代码示例和实战案例,帮助你掌握Web开发的核心概念和技能。不论你是初学者还是有经验的开发者,这个博客都适合你。 1011

【JavaScript】arguments.callee的作用

arguments.callee的作用   arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文,这有利于匿名函数的递归或者保证函数的封装性。   请看下面这个非常经典的阶乘函数 function factorial(num){ if (num &lt...

yzryzh的博客 295

JS - Function 之 Arguments

Arguments 函数的参数构成的数组 描述 只定义在函数体内,函数体内arugments指代Arguments对象,该对象是类数组对象,有数组属性可以当做数组使用,含有传入该函数的所有参数,arugments本质上是一个局部变量,在函数体内会自动声明并初始化改变量,仅在函数体内才指代Arguments对象,在全局代码中为undefined Arguments 函数的为参数...

adx5279的博客 217

原生js底层基础(十三)JavaScript auguments.callee、caller

1.arguments.callee arguments.callee 代表的是函数自身的引用,在哪个函数里调用就是哪个函数的引用 使用场景:有的时候使用匿名函数,没有办法使用函数名调用,可以选择arguments.callee 例如,在写求阶乘函数(递归)时: var num = (function(n){ if(n <= 1){ return 1; } return n * ...

爱吃葡萄的小菠萝 305

javascript Arguments对象——函数的实际参数

在javascript函数体内,标识符arguments具有特殊含义。它是调用对象的一个特殊属性,用来引用Arguments对象。Arugments对象就像数组,注意这里只是像并不是哈。 javascript函数体内,arguments像数组(并不是真的数组,是一个Arguments对象,再次强调)一样,有length属性,可以代表传给函数的参数的个数。 引用一个形式参数可以用参数名,

zhanglinjian21的专栏 643

arguments.callee的作用

arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文,这有利于匿名函数的递归或者保证函数的封装性。    请看下面这个非常经典的阶乘函数 function factorial(num){ if (num &lt;=1) { r...

qq_38698753的博客 1463

JavaScript 中 callee 与 caller 的作用

1.callee:callee 属性是一个指向正在执行的函数的指针。它可以在函数内部使用,通过 arguments.callee 访问。这对于递归函数或匿名函数非常有用,因为函数名可能不知道或变化。是被禁用的,会导致错误。所以,在现代的 JavaScript 开发中,应尽量避免使用 callee 和 caller 属性。在 JavaScript 中,callee 和 caller 是与函数调用有关的属性。需要注意的是,callee 和 caller 在。

2302_80798583的博客 380

js之arguments详解

arguments是一个类数组 1.arguments.callee function test(){ console.log(arguments.callee); } test(); arguments.callee的返回结果就是函数引用,即function test(){} 那么arguments.callee有什么作用呢? 例如我...

superyuan567的博客 526

arguments.callee用法

  arguments.callee 在哪一个函数中运行,它就代表哪一个函数。    一般用在匿名函数中   在匿名函数中有时会需要自己调用自己,但是由于是匿名函数,没有名子,无名可调。   这时就可以用arguments.callee来代替匿名的函数。 (function(n){ if(n > 1) return n* arguments.call...

Fiona5201的博客 242
上一篇: WebGL中precision是什么? 指定精确度的precision
下一篇: 2018,转变身份的一年! 2019,不只是Flag!
acoolgiser
博客等级 码龄11年 179粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值