闭包的内存表现和内存泄漏

42 阅读1分钟

函数执行过程的内存

function foo() {
    var name = "foo"  // 局部变量
    var age = 18      // 局部变量
    // 没有返回值
}

function test() {
    console.log("test")  // 简单地打印 "test"
}

foo()   // 调用 foo 函数(执行但没有任何可见效果)
test()  // 调用 test 函数,控制台输出 "test"

image.png

image.png

闭包

function foo() {
    var name = "foo";
    var age = 18;

    function bar() {
        console.log(name);
        console.log(age);
    }
    return bar;
}

var fn = foo();
fn();

image.png

image.png

image.png

image.png