菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
284
0

JS1 -- 闭包

原创
05/13 14:22
阅读数 73094

闭包:有权访问另一个函数作用域中的变量的函数。(创建闭包的常见方式,就是一个函数内部创建另一个函数或二级函数引用一级函数的变量,例子如下)

例子:

function closureFn() {
   var a = 3
  function sonFn() {
    return ++a;
  }
  return sonFn
}
let changeNum = closureFn();
console.log(changeNum())    // 4
console.log(changeNum())    // 5

文字+图解:有权访问 另一个函数b的 作用域中的 变量i 的函数a, 即a函数就是闭包

1.有权访问另一个函数作用域中的变量的函数,就是一个函数内部创建另一个函数

2.作用是可以读取函数内部变量 和 防止污染全局数据()

3.缺陷是变量始终保存在内存中,导致内存泄漏

4.定时器、事件监听器、 Ajax请求、跨窗口通信、Web Workers或者任何其他的异步(或者同步)任务中,只要使 用了回调函数,实际上就是在使用闭包!(模块暴露)

以妓会友,评赞走起

 

发表评论

0/200
284 点赞
0 评论
收藏
为你推荐 换一批