一张图解决作用域和作用域链

92 阅读1分钟

一张图解决作用域和作用域链

题目如下

    var num = 10;
    var obj = { num: 20 };
    obj.fn = (function (num) {
        this.num = num * 3;
        num++;
        return function (n) {
            this.num += n;
            num++;
            console.log(num);
        }
    })(obj.num);

    var fn = obj.fn;

    fn(5);
    obj.fn(10);
    console.log(num, obj.num)

解决过程如下:

作用域链.png