• 闭包


    闭包定义

    闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

    闭包是由什么构成
      闭包=函数+词法作用域
    
      词法作用域:即以变量声明定义的位置为参照,如果当前位置没有定义,就会访问父级定义的位置
    
    广义上闭包:
      var a=1000;
      function fn1() {
         alert(a)
      }
      fn1()
    
    平时工作中用到的闭包狭义上闭包:
      1.函数内嵌套函数
      2.子函数引用了父函数的相关变量
    

    特点:长期驻留内存

    闭包应用场景和实现

     //求和
     function makeAdd(x) {
        return function(y) {
         return x+y
       }
    }
    
    
    //设置字号
    function setFontSize(size) {
       return function() {
         document.body.style.fontSize=size+"px"
       }
    }
    
    
    //循环表单
    function makeHelp(help) {
        
        return function() {
           console.log(help)
            document.querySelector('.help').innerHTML=help
        }
     }
    function init() {
        var userInfo=[
            {id:'username',helpText:'请输入用户名'},
            {id:'email',helpText:'请输入邮箱'},
            {id:'address',helpText:'请输入地址'},
        ]
        //动态绑定onfocus事件
        for(var i=0;i<userInfo.length;i++) {
            var item=userInfo[i];
            document.getElementById(item.id).onfocus=makeHelp(item.helpText)
        }
    }
    init()
    
    //封装组件或插件
    var Counter=(function() {
    
       //私有变量
       var index=0;
       //私有方法
       var add=function() {
           return index++;
       }
    
       var jian=function() {
    
       }
       return {
           //暴露出去供用户的方法
           increment:function() {
               add()
           },
           getValue:function() {
               return index;
           }
       }
    })()
    

    闭包优点和缺点

    • 长期驻留内存,可以缓存数据
    • 可以隔离作用域,避免全局污染
    小知识点

    如何回答的一个技术记汇,或你对xxxx的理解
    例如:你说一下对闭包的理解

    答:

    • xxx是什么

    • ​应用场景

    • ​ 优缺点

    • ​ 具体实现

    • ​ 5.还有没有更好的解决方案!

  • 相关阅读:
    C# NAudio录音和播放音频文件及实时绘制音频波形图(从音频流数据获取,而非设备获取)
    C# NAudio录音和播放音频文件-实时绘制音频波形图(从音频流数据获取,而非设备获取)
    C# 录音和播放录音-NAudio
    转载:需求分析师和产品经理有什么区别?
    商业分析师
    网络基础概念
    软件需求工程
    微信APP分析报告
    产品经理的工作职责
    如何编写产品分析报告
  • 原文地址:https://www.cnblogs.com/mxnl/p/13604298.html
Copyright © 2020-2023  润新知