首页 > 代码库 > javaScript闭包
javaScript闭包
闭包:
这个术语非常古老,是指函数变量可以被隐藏于作用域链之内,因此看起来是函数将变量“包裹”了起来。
作用域链:
我们将作用域链描述为一个对象列表,不是绑定的栈。每次调用JavaScript函数的时候,都会为之创建一个新的对象用来保存局部变量,把这个对象添加至作用域链中,当函数返回的时候,就从作用域链中将这个绑定变量的对象删除。
如果不存在嵌套的函数,也没有其他引用指向这个绑定对象,它就会被当做垃圾回收掉。
如果定义了嵌套的函数,每个嵌套的函数都各自对应一个作用于连,并且这个作用于连指向一个变量绑定对象,但如果这些 (未完成)
了解闭包首先要了解嵌套函数的词法作用域规则。
var scope = "global scope"; //全局变量
function checkscope(){
var scope = "local scope"; //局部变量
function f(){
return scope; //在作用域中返回这个值
}
return scope; //=>" local scope"
}
checkscope(); //==> "local scope"
javaScript闭包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。