码迷,mamicode.com
首页 > 其他好文 > 详细

17-3-闭包

时间:2019-09-07 12:22:29      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:soft   执行   ack   get   html   margin   mic   class   outer   

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            font-family: "Microsoft YaHei", serif;
        }

        body, dl, dd, p, h1, h2, h3, h4, h5, h6 {
            margin: 0;
        }

        ol, ul, li {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        img {
            border: none
        }
    </style>
</head>
<body>
<div id="wrap">
    <p>1</p>
    <p>2</p>
    <p>3</p>
    <p>4</p>
    <p>5</p>
</div>
<script>
    // 为了避免全局变量冲突,局部变量被回收。使用闭包
    // (function () {
    //     var num = 10-vue-router;
    //     document.onclick = function () {
    //         num++;
    //         alert(num);
    //     }
    // })();


    // 这也是一种闭包
    // 在es6中只要作用域套作用域就可以形成闭包
    // 这里for的小括号套着大括号
    // let aP = document.getElementsByTagName("p");
    //
    // for (let i=0;i<5;i++) {
    //     aP[i].onclick = function () {
    //         alert(i+1)
    //     }
    // }

    // 这里var就不可以
    // 因为这里如果用var的话不会产生套着大括号的作用域
    // for (var i=0;i<5;i++) {
    //     aP[i].onclick = function () {
    //         alert(i+1)
    //     }
    // }

    // let aP = document.getElementsByTagName("p");
    // function a(x) {
    //     aP[x].onclick = function () {
    //         alert(++x);
    //     };
    // }
    // for (var i=0;i<5;i++) {
    //     a(i)
    // }

    let aP = document.getElementsByTagName("p");
    for (var i=0;i<5;i++) {
        (function () {
            aP[x].onclick = function () {
                alert(++x);
            };
        })(i);
    }

    // 函数自执行不代表闭包
    // 只有调用了父级的变量才叫闭包
</script>
</body>
</html>

 

17-3-闭包

标签:soft   执行   ack   get   html   margin   mic   class   outer   

原文地址:https://www.cnblogs.com/zhangyu666/p/11479951.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!