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


相关推荐: Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  中国移动官方网站首页入口 中国移动官网网页登录  如何快速生成可下载的建站源码工具?  Laravel如何实现一对一模型关联?(Eloquent示例)  SQL查询语句优化的实用方法总结  phpredis提高消息队列的实时性方法(推荐)  canvas 画布在主流浏览器中的尺寸限制详细介绍  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  JavaScript如何操作视频_媒体API怎么控制播放  Linux安全能力提升路径_长期防护思维说明【指导】  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何在阿里云完成域名注册与建站?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  Laravel如何处理和验证JSON类型的数据库字段  如何快速查询网站的真实建站时间?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何在Windows虚拟主机上快速搭建网站?  JavaScript实现Fly Bird小游戏  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  如何快速建站并高效导出源代码?  做企业网站制作流程,企业网站制作基本流程有哪些?  南京网站制作费用,南京远驱官方网站?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Android okhttputils现在进度显示实例代码  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel如何使用模型观察者?(Observer代码示例)  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  JS弹性运动实现方法分析  零基础网站服务器架设实战:轻量应用与域名解析配置指南  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  如何快速选择适合个人网站的云服务器配置?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  如何在IIS7上新建站点并设置安全权限?  高防服务器租用指南:配置选择与快速部署攻略  实例解析Array和String方法  如何挑选优质建站一级代理提升网站排名?  网页设计与网站制作内容,怎样注册网站?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  php 三元运算符实例详细介绍  Swift中swift中的switch 语句