一个有点意思的js闭包题目

var nAdd;
var t = function() {
    var n = 99;
    nAdd = function() {
         n++;
    }
    var t2 = function() {
        console.log(n)
    }
    return t2;
};

var a1 = t();
var a2 = t();

nAdd();

a1(); //99
a2(); //100

这道题目主要的地方在于nAdd这个函数。还有一点就是a1()和a2()是两个不一样的函数。 nAdd又是一个全局的函数,它的作用域在globalContext里,那么经历过两次重写后,nAdd加的就是a2()中的n了。

你可能感兴趣的:(一个有点意思的js闭包题目)