当前位置:首页 > 编程笔记 > 正文
已解决

JS进阶-闭包

来自网友在路上 163863提问 提问时间:2023-09-26 20:25:08阅读次数: 63

最佳答案 问答题库638位专家为你答疑解惑

概念:一个函数对周围状态的引用捆绑在一起,内层函数中访问到其外层函数的作用域

简单理解:闭包(Closure)=内层函数+外层函数的变量

function outer() {const a = 1function f() {console.log(a)}f()}
outer()

闭包作用:封闭数据,实现数据私有,外部也可以访问函数内部的变量

基本格式:

function outer() {let i = 1function fn() {console.log(i)}return fn}
const fun = outer()
fun()

或简写为:

function outer() {let i = 1return function () {console.log(i)}}
const fun = outer()
fun()

闭包应用:实现数据的私有,防止数据被别人在外部篡改

比如,我们要做个统计函数调用次数,函数调用一次,就++

function count() {let i = 0return function () {i++console.log(`函数被调用了${i}次`)}}
const fun = count()
fun()

但是闭包会有内存泄漏的问题

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"JS进阶-闭包":http://eshow365.cn/6-14147-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!