美文网首页
闭包初认识

闭包初认识

作者: 连庄小公举 | 来源:发表于2016-02-29 19:23 被阅读4次

1.html如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>try-函数</title>
<script type="text/javascript">
</script>
</head>
<body>
<div id="div1">aaa</div>
<div id="div2">bbb</div>
<div id="div3">ccc</div>
</body>
</html>

2.在,script标签中插入如下js

window.onload=function () {
    for (var i=1;i<4;i++){ 
        var aa= document.getElementById('div'+i);
        aa.addEventListener('click',function(){ 
            alert(i);
        })
    }
}

执行结果均为4;
3.改变代码如下

window.onload=function () {
    for (var i=1;i<4;i++){ 
        (function (i) {
                    var aa= document.getElementById('div'+i);
                    aa.addEventListener('click',function(){ 
                        alert(i);
                    })
        })(i)
    }
}

得到了预期结果,点击aaa时弹出1,bbb时弹出2,ccc弹出3。

在js中函数内部可以读取全局变量,但是函数外部无法读取函数内的局部变量。
第一种情况下i为全局变量,i始终取值为for循环的最后一个值。

今天的学习中还出现了一个很无语的问题,div中书写id时多了一个空格,document.getElementById("div"+i)无论如何都取不到值。

相关文章

  • 闭包初认识

    1.html如下: 2.在,script标签中插入如下js 执行结果均为4;3.改变代码如下 得到了预期结果,点击...

  • python闭包学习

    参考文章 python闭包python闭包一步一步教你认识Python闭包深入浅出python闭包

  • 初认闭包

    写在最前:和其他大多数高级编程语言一样,JavaScript也采用词法作用域。 为了实现词法作用域,JavaScr...

  • Python中的闭包

    什么是闭包?闭包有什么用?为什么要用闭包?今天我们就带着这3个问题来一步一步认识闭包。 闭包和函数紧密联系在一起,...

  • Python中的闭包

    什么是闭包?闭包有什么用?为什么要用闭包?今天我们就带着这3个问题来一步一步认识闭包。 闭包和函数紧密联系在一起,...

  • swift-闭包

    闭包 闭包定义 闭包简化 - 尾随闭包 闭包参数 闭包返回值 闭包的循环引用

  • 初(粗)谈闭包

    闭包 1 .闭包是一个特殊对象,它由执行上下文(代号A)与在该执行上下文中创建的函数(代号B)共同组成。当B执行时...

  • 闭包的初了解

    1.什么是闭包? 内部函数能够返回外部函数的作用域(当内部函数返回时,它会携带一个背包,背包中是函数声明时作用域内...

  • js中闭包的作用以及应用

    对闭包的认识: 闭包的概念:函数A中,有一个函数B,函数B中可以访问函数A中定义的变量或者是数据,此时形成了闭包(...

  • Swift 闭包的认识

    1.闭包定义 swift语言中可以使用一块独立的代码块替代函数的定义称独立的代码块为闭包 //闭包的格式: //<...

网友评论

      本文标题:闭包初认识

      本文链接:https://www.haomeiwen.com/subject/ympgkttx.html