• 闭包案例-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 ,这三个函数引用也是底部三个超链接的单击事件回调函数。于是用户单击超链接时,通过这三个闭包可以改变页面字体的大小设置

  • 相关阅读:
    js向下取整的奇技淫巧
    Python 中文Key 报错问题
    [LintCode] Palindrome Partitioning II
    [LintCode] Trapping rain water II
    [LintCode] Trapping Rain Water
    [LintCode] Permuation Index
    [LintCode] Word Break
    [LintCode] Interleaving Positive and Negative Numbers
    [LintCode] Find the Weak Connected Component in the Directed Graph
    [LintCode] Binary Tree Serialization
  • 原文地址:https://www.cnblogs.com/wxhhts/p/7743868.html
Copyright © 2020-2023  润新知