这段代码
uniqueInteger.count = 0;
function uniqueInteger() {
return uniqueInteger.count++;
}
console.log(uniqueInteger());
console.log(uniqueInteger());
产生以下输出:
0
1
执行此代码的情况如何,因为尚未声明在第一行count
上分配uniqueInteger
属性?
答案 0 :(得分:3)
基本上,当您声明function
时,它会在概念上移到代码的顶部(虽然这不是浏览器的字面意思,但请查看以前的文档以获取更多信息因此,我们可以将您的代码重写为以下流程:
function uniqueInteger() {
return uniqueInteger.count++
}
uniqueInteger.count = 0;
console.log(uniqueInteger()) // 0
console.log(uniqueInteger()) // 1