zoukankan      html  css  js  c++  java
  • 闭包1

    在一个函数里面嵌套另一个函数

    1    function func() {
    2         var a=1, b=2;
    3         function closure() {
    4             return a + b;
    5         }
    6         return closure;
    7     }
    console.log(func());  返回那个函数
    console.log(func()());  返回那个函数的执行结果
    1 1、在外面操作闭包内部的变量
    2 2、可以形成封闭空间,防止全局变量污染
    3 3、可以延长闭包内部变量的生命周期
     1 <script type="text/html">
     2     function makeSub(x) {
     3         return function (y) {
     4             return x - y;
     5         }
     6     }
     7 
     8     var sub3 = makeSub(3);
     9     var sub7 = makeSub(7);
    10 
    11     console.log(sub3(2)); // 1
    12     console.log(sub7(2)); // 5
    13 
    14     // 释放对闭包的引用
    15     sub3 = null;
    16     sub7 = null;
    17 </script>

    对应第二条

    <script>
        var singleton = (function () {
            // 私有变量
            var intro = "喜欢IT, 就来撩课!";
            var work = function () {
                console.log('小撩!!!!!');
            };
    
            return {
                name: '小撩',
                getIntro: function () {
                    return intro;
                },
                getWork: function () {
                    return work;
                }
            }
        })();
    
        console.log(singleton.name); //可以访问到
        console.log(singleton.getIntro());//访问私有变量
        singleton.getWork()();//访问私有变量
    
    </script>
  • 相关阅读:
    js history对象 手机物理返回键
    正则表达式学习整理
    js获得时间new Date()整理
    币值转换
    打印沙漏
    秋季总结
    对我影响最大的三位老师
    我就是我
    秋季学期学习总结
    自我介绍
  • 原文地址:https://www.cnblogs.com/zhangzhengyang/p/11228575.html
Copyright © 2011-2022 走看看