Javascript 嵌套ES6类

Javascript 嵌套ES6类,javascript,ecmascript-6,nested,modularity,Javascript,Ecmascript 6,Nested,Modularity,在我目前正在开发的一款混合移动应用程序中,我加入了该应用程序的功能,可以根据用户的选择改变其整个前端。我通过下载一个类似于下面的ES6文件形式的“个性模块”来实现这一点 window.guff=class { 静态Hello(){alert('Hello from Window.guff');} 静态间隙=类 { 静态Hello(){alert('Bonjour from Window.guff.gaff');} } 静态goo=类 { 静态Hello(){alert('Ciao from

在我目前正在开发的一款混合移动应用程序中,我加入了该应用程序的功能,可以根据用户的选择改变其整个前端。我通过下载一个类似于下面的ES6文件形式的“个性模块”来实现这一点

window.guff=class
{
静态Hello(){alert('Hello from Window.guff');}
静态间隙=类
{
静态Hello(){alert('Bonjour from Window.guff.gaff');}
} 
静态goo=类
{
静态Hello(){alert('Ciao from Window.guff.goo');}
}
}
你好;
goff.gaff.Hello();
废话。咕噜。你好()
我的问题是,这样使用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)

这些类上的所有内容都是静态的。为什么它们不是普通对象?如果您想使用ES6,为什么不使用模块(带命名导出)?