最近在看設計模式中,遇到一個關于閉包的問題,有點想不通啊,求助,代碼如下:function foo(){ var a = 10; function bar(){ a*= 2; return a; } return bar;}var baz = foo();console.log(baz.toString());var blat = foo();console.log(blat.toString());console.log(baz==blat)打印出來的結果:后來,我用單獨寫了一個函數:function b (){
var tt = 10;
return tt++
}
var aa = b;
var cc = b;
console.log(aa.toString());
console.log(cc.toString());
console.log(aa==cc)打印出來結果:對于第二段的代碼,我可以理解,因為函數也是對象,aa和cc都指向同一個引用地址,
但是為啥第一段代碼,在閉包中,baz和blat不也是指向同一個引用嘛?為啥不相等?求大神指點
js閉包作用域
眼眸繁星
2018-10-02 11:07:41