SOURCE

function test() {
    var n = 4399;
    var obj = {
        m: 1
    }
    function add() {
        n++;
        console.log(n);
    }
    return { n: n, add: add }
}
var result = test(); // new { n: n, add: add } 新内存 result.add 有私有作用域 有 n = 4399
var result2 = test(); // new { n: n, add: add } 新内存 result.add 有私有作用域 有 n = 4399
result.add(); // result.add 操作的n是 result.add私有作用域的 n
result.add(); // result.add 操作的n是 result.add私有作用域的 n,
console.log('闭包', result.n);
result.n++
console.log('闭包', result.n);
test().add() 
result = test()
console.log('新内存闭包', result.n);
console.log(result.obj === result.obj,result.obj === result2.obj)
result2.add();
console 命令行工具 X clear

                    
>
console