闭包是一个词法作用域和函数的组合概念。所以要理解闭包,必须先理解作用域和函数的概念。
函数概念无需赘述,作用域的外表是一对大括号,其本质是一个按照一组规则对内存中的变量进行查找的工具,也有人把它直接理解为一套规则。规则大致是,当程序需要某个变量时,会先在当前作用域查找,如果找不到会继续在外层作用域查找,逐级往上,直到找到该变量,或者查找完全局作用域。函数
闭包是一个词法作用域和函数的组合概念。所以要理解闭包,必须先理解作用域和函数的概念。
函数概念无需赘述,作用域的外表是一对大括号,其本质是一个按照一组规则对内存中的变量进行查找的工具,也有人把它直接理解为一套规则。规则大致是,当程序需要某个变量时,会先在当前作用域查找,如果找不到会继续在外层作用域查找,逐级往上,直到找到该变量,或者查找完全局作用域。函数