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