JS学习笔记之闭包小案例分析


Posted in Javascript onMay 29, 2019

本文实例讲述了JS学习笔记之闭包小案例。分享给大家供大家参考,具体如下:

直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Document</title>
</head>
<style type="text/css">
  *{
    list-style:none;
  }
  ul{
    display:flex;
    flex-wrap:wrap;
  }
  li{
    width: 20%;
    text-align: center;
  }
  img{
    width: 90%;
    padding:5%;
    border:1px solid #ccc;
    border-radius:5px;
  }
</style>
<body>
<ul>
  <li><img src="http://www.nixiaolei.com/pizza/dist/pizza.jpg" alt=""><p><button>赞(1)</button></p></li>
  <li><img src="http://www.nixiaolei.com/pizza/dist/pizza.jpg" alt=""><p><button>赞(1)</button></p></li>
  <li><img src="http://www.nixiaolei.com/pizza/dist/pizza.jpg" alt=""><p><button>赞(1)</button></p></li>
  <li><img src="http://www.nixiaolei.com/pizza/dist/pizza.jpg" alt=""><p><button>赞(1)</button></p></li>
</ul>
</body>
<script type="text/javascript">
function my$(tagName){
  return document.getElementsByTagName(tagName);
}
var btnObjs=my$("button");
function bb(){
  var value=2;
  return function(){
    var target=event.target
    console.log(this)
    this.innerHTML="赞("+(value++)+")";
  }
}
for(var i=0;i<btnObjs.length;i++){
  btnObjs[i].onclick=bb()
}
</script>
</html>

函数被返回后 其中的value 并未被释放,所以累加

闭包后,作用域链会被延长

闭包的作用,缓存数据,是缺点也是优点

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js 文本滚动效果的实例代码
Aug 17 Javascript
jQuery filter函数使用方法
May 19 Javascript
jquery动态分页效果堪比时光网
Sep 25 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
Sep 05 Javascript
js实现手机发送验证码功能
Mar 13 Javascript
JS判断数组那点事
Oct 10 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
Nov 14 Javascript
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
May 29 #Javascript
elementUI select组件value值注意事项详解
May 29 #Javascript
elementUI select组件使用及注意事项详解
May 29 #Javascript
通过vue手动封装on、emit、off的代码详解
May 29 #Javascript
el-select数据过多懒加载的解决(loadmore)
May 29 #Javascript
JS学习笔记之原型链和利用原型实现继承详解
May 29 #Javascript
vue读取本地的excel文件并显示在网页上方法示例
May 29 #Javascript
You might like
php使用include 和require引入文件的区别
2017/02/16 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
2019/03/30 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python socket 超时设置 errno 10054
2014/07/01 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
培训班主持词
2014/03/28 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
小学班级特色活动方案
2014/08/31 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
中学生检讨书1000字
2014/10/28 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android