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 相关文章推荐
JavaScript之自定义类型
May 04 Javascript
简约JS日历控件 实例代码
Jul 12 Javascript
jQuery图片特效插件Revealing实现拉伸放大
Apr 22 Javascript
JavaScript知识点整理
Dec 09 Javascript
JS提交form表单实例分析
Dec 10 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 Javascript
ES6学习教程之对象字面量详解
Oct 09 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
layer插件select选中默认值的方法
Aug 14 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
Dec 11 Javascript
vue实现扫码功能
Jan 17 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字符串处理的10个简单方法
2010/06/30 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
JQuery优缺点分析说明
2011/04/10 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
jQuery层级选择器实例代码
2017/02/06 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
vue-router命名视图的使用讲解
2019/01/19 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
悬挂训练绳:TRX
2017/12/14 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
大学生军训广播稿
2014/01/24 职场文书
关于安全的演讲稿
2014/05/09 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
服务整改报告
2014/11/06 职场文书
立项申请报告范本
2015/05/15 职场文书
停车场管理制度范本
2015/08/05 职场文书
如何撰写促销方案?
2019/07/05 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
MySQL分库分表详情
2021/09/25 MySQL