我对 JavaScript 中的 getter 和 setter 非常熟悉,但我对我目前得到的行为有点困惑。这是我的代码:
function u0(n) {
return {
get count() { return ++n; },
set count(m) { m = n; }
}
}
v0 = u0(10); //start with 10
console.log(v0.count); //11: increase by 1
console.log(v0.count); //12: increase by 1
console.log(v0.count); //13: increase by 1
console.log(v0.count = 0); //set back to 0
console.log(v0.count); //14?
当我调用该count
方法并设置它时,它确实将计数重置为零,但是当我count
再次调用我的方法而不设置它时,它会在它停止的地方重新开始。我的印象是,当我将 count 方法设置n
为0
.
为什么在我设置时count
从中断的地方继续而不是被重置?0
count