Blog
首页
文档
收藏
关于
  • 在线转换时间戳 (opens new window)
  • 在线压缩图片 (opens new window)
  • Float-Double转二进制 (opens new window)
  • 文件转Hex字符串 (opens new window)

HiuZing

🍑
首页
文档
收藏
关于
  • 在线转换时间戳 (opens new window)
  • 在线压缩图片 (opens new window)
  • Float-Double转二进制 (opens new window)
  • 文件转Hex字符串 (opens new window)
  • 前端面试题

    • Vue

    • 计算机网络

    • CSS

    • JavaScript

      • JavaScript-闭包
      • JavaScript-原型链
      • JavaScript-new操作符具体做了什么?
      • JavaScript-浅拷贝和深拷贝
      • JavaScript-微服务和宏服务
      • JavaScript-Promise
      • JavaScript-find和filter区别
      • JavaScript-some和every区别
      • JavaScript-垃圾回收机制
      • 常见面试题
    • 小程序

    • 面试记录

  • JavaScript

  • Vue2

  • port

  • CSS

  • Node.js

  • JavaScript优化

  • uniapp

  • Mini Program

  • TypeScript

  • 面向对象编程

  • UI组件

  • Plugin

  • Vue3

  • 性能优化

  • Axios

  • 状态管理

  • React

  • Mock

  • Icon

  • Template

  • 构建工具

  • 项目规范配置

  • Taro

  • SVG

  • React Native

  • 前端
  • 前端面试题
  • JavaScript
HiuZing
2022-04-01

JavaScript-闭包

# 闭包

  1. 闭包是什么 闭包是一个函数加上到创建函数的作用域的连接,闭包“关闭”了函数的自由变量

  2. 闭包可以解决什么问题

    1. 内部函数可以访问到外部函数的局部变量

      function fun() {
          var a = 10
          return function() {
              console.log(a);
          }
      }
      
      fun()()
      
      1
      2
      3
      4
      5
      6
      7
      8
    2. 闭包可以解决的问题

      var lis = document.getElementsByTagName('li')
      for(var i = 0;i<lis.length;i++)(
      	(function(i){
              lis[i].onclick = function(){
                  alert(i)
              }
          })(i)
      )
      
      1
      2
      3
      4
      5
      6
      7
      8
  3. 闭包的缺点

    1. 变量会驻留在内存中,造成内存损耗问题

      解决:把闭包的函数设置为null

      var lis = document.getElementsByTagName('li')
      for(var i = 0;i<lis.length;i++)(
      	(function(i){
              lis[i].onclick = function(){
                  alert(i)
              }
              lis[i] = null
          })(i)
      )
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
    2. 内存泄漏(ie)

上次更新: 2024/08/14, 04:14:33
CSS3新特性
JavaScript-原型链

← CSS3新特性 JavaScript-原型链→

最近更新
01
React Native 使用SVG
08-13
02
Docker基础命令
08-04
03
算数逻辑单元
07-30
更多文章>
Theme by Vdoing | Copyright © 2021-2024 WeiXiaojing | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式