怎样理解闭包

怎样理解闭包

1.闭包是能读取其他函数内部变量的函数;

2.闭包是包含自由变量的代码块;这些变量不是在这个代码块或者任何全局上下文中定义的,而是在定义代码块的环境中定义;

3.闭包一词来源于要执行的代码块和为自由变量提供绑定的计算环境两者的结合;

4.闭包作为函数对象或者匿名函数,对于类型系统不仅要表示数据还要表示代码,支持闭包的多数语言都将函数作为第一级对象,这些函数可以存储到变量中、作为参数传递给其他函数,最重要的是能够被函数动态地创建和返回。