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 判断代码全收集
Apr 28 Javascript
js 处理URL实用技巧
Nov 23 Javascript
jQuery基础框架浅入剖析
Dec 27 Javascript
jquery插件validate验证的小例子
May 08 Javascript
Javascript基础教程之数组 array
Jan 18 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
Apr 10 Javascript
Vue 项目代理设置的优化
Apr 17 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
Aug 19 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
May 10 Javascript
Vuex的各个模块封装的实现
Jun 05 Javascript
jQuery实现购物车全功能
Jan 11 jQuery
Axios取消重复请求的方法实例详解
Jun 15 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应用程序的七个习惯深入分析
2013/06/08 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
php中JSON的使用与转换
2015/01/14 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
python决策树之CART分类回归树详解
2017/12/20 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
python在文本开头插入一行的实例
2018/05/02 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
深入了解Python 方法之类方法 &amp; 静态方法
2020/08/17 Python
用python制作个视频下载器
2021/02/01 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
物理专业本科生自荐信
2014/01/30 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
财务稽核岗位职责
2015/04/13 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python