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学习笔记(五) Array 数组类型介绍
Jun 19 Javascript
jQuery中(function(){})()执行顺序的理解
Mar 05 Javascript
Extjs4 GridPanel 的几种样式使用介绍
Apr 18 Javascript
10个很棒的jQuery代码片段
Sep 24 Javascript
JavaScript编写简单的计算器
Nov 25 Javascript
ES6教程之for循环和Map,Set用法分析
Apr 10 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
Apr 21 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
Sep 02 Javascript
JavaScript实现点击切换验证码及校验
Jan 10 Javascript
JS实现百度搜索框
Feb 25 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 缓冲的免费实现方法
2006/10/09 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
用js重建星际争霸
2006/12/22 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
基于vue实现分页效果
2017/11/06 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
Python实现多线程的两种方式分析
2018/08/29 Python
python实现转圈打印矩阵
2019/03/02 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
模具专业毕业推荐信
2014/03/08 职场文书
啤酒节策划方案
2014/05/28 职场文书
学习张林森心得体会
2014/09/10 职场文书
企业贷款委托书格式
2014/09/12 职场文书
个人剖析材料范文
2014/09/30 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
新郎新娘答谢词
2015/01/04 职场文书
源码解读Spring-Integration执行过程
2021/06/11 Java/Android