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
  • 相关阅读:
    测试方案
    测试需求
    软件测试知识点总结
    自动化测试
    测试——缺陷报告包括那些内容,由什么组成
    测试——缺陷的类型
    软件测试工具简介
    测试工程师
    剑指offer系列21--二叉搜索树的后续遍历序列
    剑指offer系列20--从上到下打印二叉树
  • 原文地址:https://www.cnblogs.com/linhongjie/p/12252672.html
Copyright © 2011-2022 走看看