关于闭包

闭包的定义:

MDN

javascriptkit

词法作用域 (lexical environment)



函数在执行的过程中,先从自己内部找变量

如果找不到,再从创建当前函数所在的作用域(词法作用域)去找, 以此往上

注意找的是变量的当前的状态

函数连同它作用域链上的要找的这个变量,共同构成闭包

一般情况下使用闭包主要是为了

1、封装数据

2、暂存数据


比如:


function car(){

  var speed = 0

  function fn(){

    speed++

    console.log(speed)

  }

  return fn

}

var speedUp = car()

speedUp()  //1

speedUp()  //2


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言: 看过一些相关文章,知道想理解闭包,词法作用域和作用域(链)是非常重要的前置知识,结合之前所学,可以继续学习...
    饥人谷_远方阅读 292评论 0 0
  • 1.什么是闭包? 有什么作用 闭包指有权访问另一个函数作用域的变量的函数。创建闭包的常见方式 是 在一个函数...
    JunVincetHuo阅读 1,441评论 0 2
  • 写这篇文章时的心情是十分忐忑的,因为对于我们今天的主角:闭包,很多小伙伴都写过关于它的文章,相信大家也读过不少,那...
    我是大橙阅读 330评论 0 1
  • 今天看到了一段关于闭包的文章,感觉挺好 挺有用的 我拿过来和大家分享一下,希望看到的小伙伴都能彻底理解闭包 =>...
    your_own_king阅读 308评论 0 2
  • 卡尔维诺中文站留言板这个帖子专门用作卡尔维诺中文站的留言板,欢迎大家留言和提问。...阮一峰2007-01-04T...
    舟渔行舟阅读 339评论 0 1