10年 Java程序员,硬核人生!勇往直前,永不退缩!

欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于闭包:

<html>
<body>
<div>
<div>

        
<button >aaa</button>
<button >bbb</button>
<button >ccc</button>

</div>
</div>


        <script  type="text/javascript">
      // script type="text/javascript" 可以省略 不写,但是如果写,必须 type="text/javascript"
var btns = document.getElementsByTagName("button"); alert(btns) var start = 100; // start = 0; for(var i = start; i< btns.length; i++ ) { btns[i].onclick = function() { alert(i);// 这样的写法有问题, 即 闭包问题 } } start = 100; //start = 0; for(var i =start; i< btns.length; i++ ) { (function(i) { // 奇怪的 闭包的 写法, 需要匿名函数, 首先外面一堆(), 然后匿名函数,一个形式参数i, 然后立即调用匿名函数,实际 参数 仍然是 i 。。。 btns[i].onclick = function() { alert(i); } }) (i); } start = 0; for(let i =start; i< btns.length; i++ ) { // 一个let 关键字,轻松解决问题!! btns[i].onclick = function() { alert("eeeee" + i); } } </script> </body> </html>

 

posted on 2019-08-19 20:08  CanntBelieve  阅读(177)  评论(0编辑  收藏  举报