闭包 - pod4g/tool GitHub Wiki
闭包和柯里化
-
JavaScript中只有两种执行环境,一种是全局执行环境,一种是局部执行环境
-
全局执行环境:是最外围的一个环境,根据ECMAScript实现所在的宿主环境的不同,表示执行环境的对象也不一样,为WEB浏览器中,全局 执行环境是
window
对象,因此所有全局变量和函数都是作为window
对象的属性和方法创建的。当JS开始执行时,会构建一个全局 执行环境,全局执行环境直到应用程序退出--例如浏览器关闭--时才会被销毁。 -
局部执行环境:每当函数被调用的时候,就会产生一个新的环境,此环境就会被推入一个环境栈中,而在函数执行之后,栈将其弹出,把控制权返回给之前的环境。局部执行环境是一种概念,是运行中的函数的意思,他不是对象。
-
某个执行环境执行完后,该环境被销毁,保存在其中的所有变量和函数定义也随之销毁
-