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代码
Mar 16 Javascript
javascript下给元素添加事件的方法与代码
Aug 13 Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 Javascript
js闭包的用途详解
Nov 09 Javascript
基于JS实现EOS隐藏错误提示层代码
Apr 25 Javascript
Javascript中的prototype与继承
Feb 06 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
canvas压缩图片转换成base64格式输出文件流
Mar 09 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
May 10 Javascript
vue实现选项卡及选项卡切换效果
Apr 24 Javascript
Javascript 对象(object)合并操作实例分析
Jul 30 Javascript
解决vue字符串换行问题(绝对管用)
Aug 06 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
第五节--克隆
2006/11/16 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
python去掉行尾的换行符方法
2017/01/04 Python
用Python写王者荣耀刷金币脚本
2017/12/21 Python
python颜色随机生成器的实例代码
2020/01/10 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
Python range与enumerate函数区别解析
2020/02/28 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
什么是数组名
2012/05/10 面试题
软件测试英文面试题
2012/10/14 面试题
《雷雨》教学反思
2014/02/20 职场文书
伊琍体标语
2014/06/25 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技