前言
我是歌谣 最好的种树是十年前 其次是现在 今天继续给大家带来的是caller和callee的讲解
环境配置
| npm init -y |
| yarn add vite -D |
修改page.json配置端口
| { |
| "name": "demo1", |
| "version": "1.0.0", |
| "description": "", |
| "main": "index.js", |
| "scripts": { |
| "dev": "vite --port 3002" |
| }, |
| "keywords": [], |
| "author": "", |
| "license": "ISC", |
| "devDependencies": { |
| "vite": "^4.4.9" |
| } |
| } |
案例1
| function test(a,b,c){ |
| console.log(arguments.callee.length) |
| console.log(test.length) |
| console.log(arguments.length) |
| } |
| test(1,2) |
运行结果

案例2
| function test1(){ |
| console.log(arguments.callee) |
| function test2(){ |
| console.log(arguments.callee) |
| } |
| test2() |
| } |
| test1() |
| |
| function sum(n){ |
| if(n<=1){ |
| return 1 |
| } |
| return n+sum(n-1) |
| } |
| var res=sum(10) |
| console.log(res) |
运行结果

案例3
| var sum=(function(n){ |
| if(n<=1){ |
| return 1 |
| } |
| return n+arguments.callee(n-1) |
| })(10) |
| console.log(sum) |
运行结果

案例4
| function test1(){ |
| test2() |
| } |
| function test2(){ |
| console.log(test2.caller) |
| } |
| test1() |
运行结果

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南