JavaScript闭包的简单应用

发布时间 - 2026-01-11 03:03:56    点击率:

闭包定义

在JavaScript中,当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。简单说,闭包就是能够读取其他函数内部变量的函数。

闭包的作用:

1. 可以读取函数内部的变量
2. 让这些变量的值始终保持在内存中。
闭包简单应用

例一:

function a() { 
  var i = 0; 
 function b() {
  console.log(++i);
 } 
 return b;
}      
var c = a();  //执行完var c=a()后,变量c指向了函数b,再执行c()后就会显示i的值(为1)。
c();    //输出1

例二:

(function() { 
var i = 0; 
 return function(){
   console.log(++i);
  }
})()();     //输出1

例三:

(function(i) { 
 return function(){
   console.log(++i);
  }
})(0)();     //输出1

例四:

for (var i = 0; i < 3; i++) {
 setTimeout((function(i) {    
  return function() {
   console.log(i);
  };
 })(i), 2000);
 console.log(i+10);
}      //输出 10 11 12 (隔两秒后)0 1 2

例五:

for (var i = 0; i < 3; i++) {
 setTimeout((function(i) {
  return function() {
   console.log(i);
  };
 })(i)(), 2000);
 console.log(i+10);
}      //立即输出 0 10 1 11 2 12 ,(两秒后运行程序结束)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 闭包  # 一文详解JavaScript闭包典型应用  # 关于Javascript闭包与应用的详解  # js核心基础之闭包的应用实例分析  # JS闭包原理与应用经典示例  # 详谈JavaScript的闭包及应用  # javascript 闭包详解及简单实例应用  # JS 循环li添加点击事件 (闭包的应用)  # JavaScript闭包的深度剖析与实际应用小结  # 就会  # 形成了  # 始终保持  # 大家多多  # brush  # strong  # var  # function  # class  # br  # pre  # JavaScript  # console  # 两秒后  # 例五  # 隔两秒后  # 例二  # return  # log 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信小程序 闭包写法详细介绍  使用spring连接及操作mongodb3.0实例  中国移动官方网站首页入口 中国移动官网网页登录  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  香港服务器租用费用高吗?如何避免常见误区?  Laravel如何自定义分页视图?(Pagination示例)  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  如何快速建站并高效导出源代码?  Laravel如何实现一对一模型关联?(Eloquent示例)  利用JavaScript实现拖拽改变元素大小  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  bootstrap日历插件datetimepicker使用方法  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  *服务器网站为何频现安全漏洞?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel怎么在Controller之外的地方验证数据  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  北京企业网站设计制作公司,北京铁路集团官方网站?  原生JS实现图片轮播切换效果  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  EditPlus中的正则表达式 实战(2)  lovemo网页版地址 lovemo官网手机登录  公司门户网站制作流程,华为官网怎么做?  香港服务器选型指南:免备案配置与高效建站方案解析  如何有效防御Web建站篡改攻击?  jQuery validate插件功能与用法详解  南京网站制作费用,南京远驱官方网站?  如何在IIS中新建站点并解决端口绑定冲突?  网站制作企业,网站的banner和导航栏是指什么?  香港服务器租用每月最低只需15元?  怎样使用JSON进行数据交换_它有什么限制  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  如何快速生成橙子建站落地页链接?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  网站页面设计需要考虑到这些问题  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Bootstrap整体框架之JavaScript插件架构  linux写shell需要注意的问题(必看)  如何在宝塔面板中修改默认建站目录?  javascript中的try catch异常捕获机制用法分析  Python自然语言搜索引擎项目教程_倒排索引查询优化案例