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 相关文章推荐
有关DOM元素与事件的3个谜题
Nov 11 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 Javascript
js 事件截取enter按键页面提交事件示例代码
Mar 04 Javascript
jquery序列化表单以及回调函数的使用示例
Jul 02 Javascript
原生javascript实现Tab选项卡切换功能
Jan 12 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
Jan 20 Javascript
详解Vue 事件驱动和依赖追踪
Apr 22 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
Jun 28 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
May 03 jQuery
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
Aug 25 Javascript
谈谈JavaScript令人迷惑的==与+
Aug 31 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如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
js实现常用排序算法
2016/08/09 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python实现聚类算法原理
2018/02/12 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
Python3并发写文件与Python对比
2019/11/20 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
学校募捐倡议书
2014/05/14 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
分公司经理任命书
2014/06/05 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书