最近在看设计模式中,遇到一个关于闭包的问题,有点想不通啊,求助,代码如下: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不也是指向同一个引用嘛?为啥不相等?求大神指点
添加回答
举报
0/150
提交
取消