前言
我是歌谣 最好的种树是十年前 其次是现在 今天继续给大家带来的是闭包的讲解
环境配置
| 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 test1(){ |
| function test2(){ |
| var b=2; |
| console.log(a) |
| } |
| var a=1; |
| return test2() |
| } |
| var c=3 |
| var test3=test1(); |
| |
分析





案例2
| function test(){ |
| var n=100 |
| function add(){ |
| n++ |
| console.log(n) |
| } |
| function reduce(){ |
| n-- |
| console.log(n) |
| } |
| return [add,reduce] |
| } |
| var arr=test() |
| arr[0]() |
| arr[1]() |
运行结果

案例2
| function breadMsg(num) { |
| var breadNum = arguments[0] || 10 |
| function supply() { |
| breadNum += 10 |
| console.log(breadNum) |
| } |
| function sale() { |
| breadNum -= 10 |
| console.log(breadNum) |
| } |
| return [supply, sale] |
| } |
| var breadMsg = breadMsg(50) |
| breadMsg[0](10) |
运行结果

案列3
| function sunSched(){ |
| var sunSched='' |
| var opration={ |
| setSched:function(thing){ |
| sunSched=thing |
| }, |
| showSched:function(){ |
| console.log("MY schedule on sunday is "+sunSched) |
| } |
| } |
| return opration |
| } |
| var sunSch=sunSched() |
| sunSch.setSched("studying") |
| sunSch.showSched() |
运行结果

【推荐】国内首个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代理技术深度解析与实战指南
2022-11-06 js基础笔记学习125-new运算符2
2022-11-06 js基础笔记学习122-hasownproperty
2022-11-06 js基础笔记学习121-instanceOf
2022-11-06 js基础笔记学习120-修改原型2
2022-11-06 js基础笔记学习118-原型的作用1
2022-11-06 js基础笔记学习115-对象的结构2
2022-11-06 js基础笔记学习113-继承2扩展性