首页 > 编程 > JavaScript > 正文

JS学习笔记之闭包小案例分析

2019-11-19 11:26:21
字体:
来源:转载
供稿:网友

本文实例讲述了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.VeVB.COm/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表