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 13 Javascript
js字符串转换成xml对象并使用技巧解读
Apr 18 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
Nov 12 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
javascript根据时间生成m位随机数最大13位
Oct 30 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
使用jquery datatable和bootsrap创建表格实例代码
Mar 17 Javascript
JS中的多态实例详解
Oct 15 Javascript
Javascript中绑定click事件的四种方式介绍
Oct 26 Javascript
微信小程序实现点赞、取消点赞功能
Nov 02 Javascript
element-ui上传一张图片后隐藏上传按钮功能
May 22 Javascript
JavaScript如何优化逻辑判断代码详解
Jun 08 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在字符串中查找另一个字符串
2008/11/19 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
JS处理VBArray的函数使用说明
2008/05/11 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
python中dir函数用法分析
2015/04/17 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
python3 flask实现文件上传功能
2020/03/20 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
python实现转圈打印矩阵
2019/03/02 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
全球最大的游戏市场:G2A
2018/07/05 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
银行柜员应聘推荐信范文
2013/11/24 职场文书
大学生交通专业求职信
2014/09/01 职场文书
大学生简短的自我评价
2014/09/12 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
初中语文教学随笔
2015/08/15 职场文书
python tkinter模块的简单使用
2021/04/07 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
Django+Celery实现定时任务的示例
2021/06/23 Python
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS
电频谱管理的原则是什么
2022/02/18 无线电