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
  • 相关阅读:
    汇编/操作系统 索引帖
    极地网络
    河中跳房子游戏
    搬家大吉QAQQAQ
    【USACO3.1.1】Agri-Net最短网络
    浅谈二叉树
    Android面试经验汇总(二)
    Android面试经验汇总(一)
    Android 聊天室(二)
    Android 聊天室(一)
  • 原文地址:https://www.cnblogs.com/linhongjie/p/12252672.html
Copyright © 2011-2022 走看看