闭包
2021-08-13 10:05:10 4 举报
AI智能生成
js闭包
作者其他创作
大纲/内容
在函数中使用的,但既不是函数参数也不是函数的局部变量的变量
自由变量
能够访问自由变量的函数
var a = 1;function foo() { console.log(a);}foo();
函数 + 函数能够访问的自由变量
理论角度
创建它的上下文已经销毁,它仍然存在(比如,内部函数从父函数中返回)
代码中引用了自由变量
实践角度
var scope = \"global scope\";function checkscope(){ var scope = \"local scope\"; function f(){ return scope; } return f;}var foo = checkscope();foo();
因为这个作用域链,f 函数依然可以读取到 checkscopeContext.AO 的值,说明当 f 函数引用了 checkscopeContext.AO 中的值的时候,即使 checkscopeContext 被销毁了,但是 JavaScript 依然会让 checkscopeContext.AO 活在内存中,f 函数依然可以通过 f 函数的作用域链找到它,正是因为 JavaScript 做到了这一点,从而实现了闭包这个概念
闭包
0 条评论
回复 删除
下一页