在webpack环境中,我有一个定义变量的ES6模块:
let my_var1 = 0
// other vars follow
然后在同一个模块中,我有一个这个变量的setter函数,但是我想按照以下方式构建它:
export const set_var(name, value) => {
// set "value" as new value for "name" variable of this module
}
我想要做的是在模块中按名称引用变量,因此外部调用类似set_var('my_var1', 5)
有一种方法可以访问"模块"宾语?像窗口对象,但对于模块。
答案 0 :(得分:0)
不,这是不可能的。
您可以通过模块对象按名称访问导出的变量,但不能设置它们 你不能用窗口做到这一点,因为let不会创建属性。
答案 1 :(得分:0)
您可以改为引用模块中的对象,然后在该对象中设置键的值(又名my_var1
)。然后你可以用吸气剂让my_var1
回来:
let moduleObject = {
my_var1: 0,
my_var2: 5,
...
}
export const set_var = (varName, value) => moduleObject[varName] = value
export const get_var = (varName) => moduleObject[varName]