你不知道的JS系列 ( 13 ) - 什么是闭包
2021-06-03 03:02
标签:fun 执行 变量 strong func ash 函数 类型 function 在 foo() 执行后,通常会期待 foo() 的整个内部作用域都被销毁,因为我们知道引擎有垃圾回收用来释放不再使用的内存空间。 把内部函数 baz 传递给 bar,当调用这个函数,现在叫做 fn,它涵盖在 foo 内部作用域的闭包就可以观察到了,因为它能够访问 a 无论通过何种手段将内部函数传递到所在词法作用域以外,它都会持有对原始定义作用域的引用,无论在何处执行这个函数都会使用闭包 你不知道的JS系列 ( 13 ) - 什么是闭包 标签:fun 执行 变量 strong func ash 函数 类型 function 原文地址:https://www.cnblogs.com/wzndkj/p/12355454.htmlfunction foo(){
var a = 2;
function bar() {
console.log(a);
}
return bar
}
var baz = foo();
baz(); // 2 —— 朋友,这就是闭包的效果
function foo(){
var a = 2;
function baz() {
console.log(a); //2
}
bar(baz);
}
function bar(fn){
fn(); // 这就是闭包
}
var fn;
function foo(){
var a = 2;
function baz() {
console.log(a);
}
fn = baz; // 将 baz 分配给全局变量
}
function bar() {
fn(); // 这就是闭包
}
foo();
bar(); // 2
上一篇:JS构造函数
下一篇:上传漏洞之生成图片木马方法
文章标题:你不知道的JS系列 ( 13 ) - 什么是闭包
文章链接:http://soscw.com/index.php/essay/89961.html