• 闭包案例-01


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <style>
    body{font-family: helvetica arial sans-serif;font-size: 12px;}
    h1{font-size: 1.5em;}
    </style>
    <script type="text/javascript">
    window.onload=function(){
    function makeSize(size){
    return function(){   //通过匿名函数访问size 值
    document.body.style.fontSize=size+'px';
    }
    }

    var size12=makeSize(12);//闭包函数
    var size13=makeSize(13);//闭包函数
    var size14=makeSize(14);//闭包函数

    document.getElementById('size-12').onclick=size12;
    document.getElementById('size-13').onclick=size13;
    document.getElementById('size-14').onclick=size14;
    }</script>
    <body>
    <h1>h1 title</h1>
    <p> text</p>
    <a href="#"id="size-12">12</a>
    <a href="#"id="size-13">13</a>
    <a href="#"id="size-14">14</a>


    </body>
    </html>

    看不懂的话可以先看这个案例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <script type="text/javascript">
    function player(){
    var name="xiao ming";
    function displayInfo(){
    alert(name);
    }
    return displayInfo;//返回一个引用
    }
    var run=player();
    run();
    </script>
    </body>
    </html>

    *

    在函数外部可以访问函数内部的局部变量

    函数内部的局部变量并没有随之函数的调用结束而销毁

    再回头看第一个案列:

    我们定义了一个mskeSize(),并在此函数内嵌套定义了匿名函数,并返回此匿名函数的引用,形成闭包。

    之后我们将返回的匿名函数引用存到size 12  13 14 ,这三个函数引用也是底部三个超链接的单击事件回调函数。于是用户单击超链接时,通过这三个闭包可以改变页面字体的大小设置

  • 相关阅读:
    BZOJ 1202: [HNOI2005]狡猾的商人( 差分约束 )
    BZOJ 1800: [Ahoi2009]fly 飞行棋( 枚举 )
    BZOJ 2006: [NOI2010]超级钢琴( RMQ + 堆 )
    BZOJ 1029: [JSOI2007]建筑抢修( 贪心 )
    FZU 2233 ~APTX4869 贪心+并查集
    FZU2232 炉石传说 最大匹配
    FZU 2237 中位数 主席树 树上k大
    CodeForcesGym 100753B Bounty Hunter II 二分图最小路径覆盖
    NOIP2010关押罪犯 二分+二染色
    POJ2236 Wireless Network 并查集
  • 原文地址:https://www.cnblogs.com/wxhhts/p/7743868.html
Copyright © 2020-2023  润新知