javaScript闭包的定义

javaScript闭包的定义javaScript 中闭包的定义在计算机科学中对闭包的定义 维基百科 1 闭包 Closure 又称词法闭包 LexicalClosu 或函数闭包 functionclos 2 是在支持头等函数 函数可以作为第一公民 的编程语言中 实现词法绑定的一种技术 3 闭包的实现是一个结构体 js gt 对象 它存储了一个函数和一个关联的环境 相当于一个符号查找表 4 闭包跟函数最大的区别在于 当捕捉闭包的时候 它的自由变量会在捕捉时被确定 这样即使脱离了捕捉时的上下

function foo() { 
    var name = "foo" function bar() { 
    console.log("bar", name)//"bar" "foo" } return bar } var fn = foo()//这里也会执行函数 这一步执行foo,执行完销毁(本该销毁name的) // 闭包是两部分组成的:函数+可以访问的自由变量 fn()//(var fn = foo()执行完后本该销毁name的,但仍然可以在bar中访问name--->这是因为js内部让本该销毁的foo的AO没有销毁.所以调用bar时仍然可以访问到foo的AO中的东西,这时候闭包就形成了,闭包就是bar这个函数本身+可以在这个函数中访问的自由变量,) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218518.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:03
下一篇 2026年3月18日 上午7:04


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号