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
针对这个问题,搞清楚了,为此特意写了篇关于闭包的博客,如对上面问题不懂,可看博客:
http://blog.csdn.net/ybdt1201/article/details/53366613