zoukankan      html  css  js  c++  java
  • 闭包

    什么是闭包?

    闭包是一个函数,一个作用域可以访问另一函数的局部变量,就会产生闭包

    被访问的局部变量所在的函数叫做闭包函数

    闭包的作用是什么呢?

    延伸了局部变量的作用范围。

    一般函数执行完后,函数内部的局部变量会被销毁,但是由于闭包,使得局部变量的寿命延长了

    同时,我们可以在函数以外的地方使用局部变量,所以闭包延伸了局部变量的作用范围

    闭包的使用

    1 实现li列表的点击事件

           var lis = document.getElementsByTagName('li') 
           for(var i = 0; i < lis.length; i++) {
                (function(i) {
                    lis[i].onclick = function() {
                        console.log(lis[i].innerHTML)
                    }
                })(i)
            }
            // 使用闭包实现每隔三秒加1
            for(var i = 0; i< lis.length; i++) {
                (function(i) { 
                    setInterval(() => {
                        lis[i].innerHTML ++
                    }, 3000);
                })(i)
            }
                

    2 实现打车价格的计算

            var car = (function() {
                var start = 12
                var total = 0
                return {
                    money: function(s) {
                        if(s > 3) {
                            total = (s-3)*5 + start
                        }else {
                            total = start
                        }
                        return total
                    },
                    yd: function(flag) {      ///拥堵费用
                        return flag ? total + 10 : total
                    }
                }
            })()
            console.log(car.money(5))   // 22
            console.log(car.yd(true))   // 32
  • 相关阅读:
    Pearls POJ 1260 DP
    The Cow Lexicon DP
    矩形嵌套
    POJ 3061 Subsequence 尺取
    动物统计加强版 Trie 树
    codevs 1422 河城荷取
    cogs 944. [東方S3] 藤原妹红
    codevs 2830 蓬莱山辉夜
    cogs 998. [東方S2] 帕秋莉·诺蕾姬
    cogs 920. [東方S1] 琪露诺
  • 原文地址:https://www.cnblogs.com/linhongjie/p/12252672.html
Copyright © 2011-2022 走看看