【发布时间】:2021-07-01 04:06:47
【问题描述】:
我正在重新审视关闭,我偶然发现了以下问题,我真的无法理解,有人可以帮我解决以下问题吗?
function Inc(){
let v = 0
let p = v
function value() {
console.log('p',p)
console.log('v', v)
}
function setValue() {
v += 1;
console.log(v)
}
return [value, setValue]
}
let [value, setValue] = Inc()
value() // p 0 , v 0
setValue()
value() // p 0, v1
根据我的理解,闭包关闭了它们创建时使用的原始值。在这种情况下,v 的值不应该也是 0 吗? setValue 正文中会发生什么以某种方式更新 value 中的值?
谢谢!
【问题讨论】:
-
"以某种方式更新
value中的值" 不,v在setValue中更新。
标签: javascript closures