【发布时间】:2021-07-02 13:29:28
【问题描述】:
我遇到了类似的事情。有人可以帮我理解为什么会发生这种行为。这与 IIFE 的范围界定有关吗?
const iife = (() => {
let myValue = "Previous";
const getValue = () => myValue;
const setValue = (val) => {myValue = val}
return {
myValue:myValue,
getValue:getValue,
setValue:setValue
}
})()
//console outputs
iife //{myValue:"Previous", getValue:f, setValue:f}
iife.setValue("New");
iife.getValue() //"New"
iife // {myValue:"Previous", getValue:f,setValue:f}
即使myValue 变量没有更改,如何获得iife.getValue() = "New" 值?
【问题讨论】:
标签: javascript iife