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了。