最近在看设计模式中,遇到一个关于闭包的问题,有点想不通啊,求助,代码如下:
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不也是指向同一个引用嘛?为啥不相等?求大神指点
斯蒂芬大帝
噜噜哒
相关分类