为什么是这样的输出呢?

//情形1
function print(){
this.i = 0;
return function(){
console.log(i++);
}
}

var a1 = print();
var a2 = print();
a1(); //0
a1(); //1
a2(); //2
var a3 = new print();
a3(); //3
a3(); //4

//情形2
function print(){
var i = 0;
return function(){
console.log(i++);
}
}

var a1 = print();
var a2 = print();
a1(); //0
a1(); //1
a2(); //0
var a3 = new print();
a3(); //0
a3(); //1

全部评论
debug啊。
点赞 回复 分享
发布于 2015-08-26 00:24

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
程序员猪皮:看不到八股什么意思
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务