闭包知多少

时间:2020-9-13 作者:admin

什么是闭包

在js中变量的作用域属于函数作用域, 在函数执行完后,作用域就会被清理,内存也会随之被回收,但是由于闭包函数是建立在函数内部的子函数, 由于其可访问上级作用域,即使上级函数执行完, 作用域也不会随之销毁, 这时的子函数(也就是闭包),便拥有了访问上级作用域中变量的权限,即使上级函数执行完后作用域内的值也不会被销毁。


闭包解决了什么问题

  • 可以读取函数内部的变量
  • 可以将变量的值始终保存在内存中,不会再函数被调用后清除
  • 封装getter 和 setter 方法

闭包缺点

  • 闭包会导致函数内的变量都存在内存中,滥用闭包会导致内存消耗过大,导致网页性能问题,解决方法是在退出函数之前,将不再使用的局部变量全部删除。
  • 内存泄漏问题

感谢观看,对于本篇文章有任何问题,可以在评论区评论!

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。