在我目前正在开发的一个混合移动应用程序中,我加入了应用程序根据其用户选择的操作来改变其整个前端的能力。我通过下载一个类似于下面的ES6文件形式的“个性模块”来做到这一点。
window.guff = class
{
static Hello(){alert('Hello from Window.guff');}
static gaff = class
{
static Hello(){alert('Bonjour from Window.guff.gaff');}
}
static goo = class
{
static Hello(){alert('Ciao from Window.guff.goo');}
}
}
guff.Hello();
guff.gaff.Hello();
guff.goo.Hello();不用说,每个个性模块都将具有相同的类层次结构和相同的方法(在应用程序代码中要小心处理遗漏的方法和/或嵌套类的形式)。
这是可行的--至少在Chrome中是这样。然而,我并不完全清楚这是否是ES6的合法使用。尽管我怀疑这是因为JSHint无法处理我的代码,但VSCode一直在标记“错误”。
我的问题是,这样使用ES6类合法吗?如果没有,有没有更好的方法来完成我想要做的事情呢?
发布于 2021-06-03 18:14:20
我的问题-这样使用ES6类合法吗?如果没有,有没有更好的方法来完成我想要做的事情呢?
正如@quentin所指出的,普通对象是一种方式:
window.guff = {
Hello: () => { alert('Hello from Window.guff'); },
gaff: {
Hello: () => { alert('Bonjour from Window.guff.gaff'); }
},
goo: {
Hello: () => { alert('Ciao from Window.guff.goo'); }
},
};如果你想锁定这个对象,你可能需要看一下Object.freeze(window.guff)
https://stackoverflow.com/questions/67818912
复制相似问题