繁体   English   中英

如何按名称访问ES6模块变量(来自模块本身)

[英]How to access ES6 module variable by name (from the module itself)

在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)

有办法访问“模块”对象? 像窗口对象,但对于模块。

不,这是不可能的。

您可以通过模块对象按名称访问导出的变量,但不能设置它们。
您也无法使用窗口执行此操作,因为let不会创建属性。

您可以改为引用模块中的对象,然后在该对象中设置键的值(也就是my_var1 )。 然后你可以用getter获取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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM