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 相关文章推荐
使用jquery中height()方法获取各种高度大全
Apr 02 Javascript
js函数参数设置默认值的一种变通实现方法
May 26 Javascript
js实现简单锁屏功能实例
May 27 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
jQuery+ajax读取并解析XML文件的方法
Sep 09 Javascript
jQuery实现立体式数字动态增加(animate方法)
Dec 21 Javascript
echarts设置图例颜色和地图底色的方法实例
Aug 01 Javascript
小程序实现展开/收起的效果示例
Sep 22 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
js如何获取图片url的Blob值并预览示例代码
Mar 07 Javascript
electron-vue开发环境内存泄漏问题汇总
Oct 10 Javascript
vue-cli设置publicPath小记
Apr 14 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
基于empty函数的输出详解
2013/06/17 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
python的re正则表达式实例代码
2018/01/24 Python
python删除文本中行数标签的方法
2018/05/31 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
小学生打架检讨书
2014/01/26 职场文书
委托书的写法
2014/08/30 职场文书
授权委托书样本
2014/09/25 职场文书
党员民主评议个人总结
2014/10/20 职场文书
2016教师节感恩话语
2015/12/09 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
Python中tkinter的用户登录管理的实现
2021/04/22 Python