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直接编辑当前cookie的脚本
Sep 14 Javascript
ext 同步和异步示例代码
Sep 18 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
JS弹出窗口插件zDialog简单用法示例
Jun 12 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
Jul 06 Javascript
javascript使用 concat 方法对数组进行合并的方法
Sep 08 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
Jul 27 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
Nov 28 Javascript
vue项目base64字符串转图片的实现代码
Jul 13 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 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中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
PHP 实现重载
2021/03/09 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
js类的静态属性和实例属性的理解
2009/10/01 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
axios学习教程全攻略
2017/03/26 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
python生成器与迭代器详解
2019/01/01 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
Python调用Redis的示例代码
2020/11/24 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
农村婚礼证婚词
2014/01/10 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
先进班组事迹材料
2014/12/25 职场文书
同学聚会通知书
2015/04/20 职场文书
红与黑读书笔记
2015/06/29 职场文书
2015年暑期见闻
2015/07/14 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记