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