function w(){
var c = 8;
function b() {
console.log(c);
c++;
}
return b;
}
w()()//8
w()()//8
w()()//8
var d = w();
d()//8
d()//9
d()//10
将w()()拆开成var d = w();d();运行后,执行结果为什么不一样
function w(){
var c = 8;
function b() {
console.log(c);
c++;
}
return b;
}
w()()//8
w()()//8
w()()//8
var d = w();
d()//8
d()//9
d()//10
将w()()拆开成var d = w();d();运行后,执行结果为什么不一样
w()()这样执行就是每次都执行了c=8【w()】,然后再执行b(),当然是8
var d=w(),这样是d等于里面的b函数,在执行就是d()每次引用的都是c,直接操作初始化的c=8