【发布时间】:2019-10-23 21:00:49
【问题描述】:
如何使用 IIFE.n() 更改 s 变量,因为现在它不起作用。在我执行 IIFE.n() IIFE.s 后仍然返回“字符串”
我已经尝试过了,但我更喜欢使用 let/const 并且不想将此变量传递给全局范围,我想将其保留在模块中。
const iife = (() => {
let s = "string";
const n = () => {
s = 1e3;
};
return {
s: s,
n: n
};
})()
目前,当我执行 iife.n() 时,它不会更改 s 变量(当我在 s = 1e3 之前添加 return 时,它返回 1000 但 iife.s 仍然返回“字符串”)
【问题讨论】:
-
我确定它确实改变了
s,但是闭包中有s局部变量和返回对象的属性s。它们是两种不同的东西。 -
const iife = (() => { let s = "string"; const n = function() { this.s = 1e3; }; return { s: s, n: n }; })()
标签: javascript function return constants iife