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