函数里面再定义一个函数,内部函数可以访问外部函数作用域的变量。如果外部函数不暴露这个内部函数的话,外界就不知道这个内部函数。
这个内部函数和函数所能访问的变量(也叫环境)的总和被称为闭包。
闭包常常用来隐藏变量,给内部函数的变量设置里只读属性,外部只能返回他的值,而不能修改他的值,从而起到了保护作用。
这边文章解释的非常清楚
「每日一题」JS 中的闭包是什么? - 方应杭的文章 - 知乎
https://zhuanlan.zhihu.com/p/22486908
函数里面再定义一个函数,内部函数可以访问外部函数作用域的变量。如果外部函数不暴露这个内部函数的话,外界就不知道这个内部函数。
这个内部函数和函数所能访问的变量(也叫环境)的总和被称为闭包。
闭包常常用来隐藏变量,给内部函数的变量设置里只读属性,外部只能返回他的值,而不能修改他的值,从而起到了保护作用。
这边文章解释的非常清楚
「每日一题」JS 中的闭包是什么? - 方应杭的文章 - 知乎
https://zhuanlan.zhihu.com/p/22486908