SOURCE

var num = 10;
var obj = {
    num:20
}
// 遇到立即执行就立即执行 立即执行中的this指向window
obj.fn = (function(num){
    // console.log(this);
    this.num = 3*num; // 3*20 因为此时绑定的就是20(obj.num)
    // num被return的函数所引用 所以不会被销毁 一直在内存中保留结果
    num++;
    // console.log("first");
    // console.log(this)
    // fn真正的值 this随之会改变
    return function(n){
        // console.log(this)
        this.num+=n;
        num++;
        console.log(num);
    }
})(obj.num)
var fn = obj.fn;
obj.fn(10);
// console.log(obj.fn)
fn(5);
fn(6);
console.log(num,obj.num)













console 命令行工具 X clear

                    
>
console