<强> 强> JavaScript ,
<强> 强> <强> 强>
“闭包是指有权访问另一个函数作用域中的变量的函数”,如果用下定义的观点看,这句话就是说“闭包是函数”,我带着怀疑的心态又去网上找了找,发现什么说法都有,终究没能明白闭包的含义,还是看代码来得直接。
出函数的返回值是一个函数,即inner.inner在出内部,理所当然能访问到局部变量的天空,但当内部作为出的返回值赋给了外的全局变量时,神奇的事情发生了:在全局作用域中访问到了天空,这就是闭包。
<强> ? 强> <强> 强>
(存储环境中定义的变量及函数)加入作用域链中,一旦函数执行完,栈将其环境弹出,活动对象被销毁。
从执行完之后将返回内给结果了,出的执行环境从环境栈弹出,控制权交给全局环境,出来的活动对象理应被销毁。但此时内心已经存储在全局活动对象中了,同时内心的需要访问天空,所以出来的活动对象没有被销毁,即使结果执行完毕,出来的活动对象依然存在于作用域链中,只有当结果被销毁
<强> ? 强> <强> 强>
,
<强> 警告 强> <强> 强>
这指的是窗口对象。