我有一个文件 Services.js
,我试图在其中加载我所有的个人服务。这些都作为单例公开。Services.js
var Services = { };
export default Services;
然后我希望示例服务嵌套在服务下,因此我可以调用例如
Services.Sample.Operation()
`SampleService.js'
import Services from './Services';
Services.Sample = {
Operation: function() {
alert('operation!')
}
};
export default Services.Sample;
然后,我尝试导入:
import Services from './services/Services';
import SampleService from './services/SampleService';
alert(Services); // yields '[object object]'
alert(SampleService); // yields '[object object]'
alert(Services.Sample); // yields 'undefined' <--- This is the one I actually want to use
我怎样才能得到它,以便我可以引用 Services.Sample 而不是 tan SampleService。如何让 SampleService 嵌套在 Services 下?
最佳答案
您的方法不起作用,因为您在 Services.js
中导入 SampleService.js
,但 Services
变量不是 Services
中的“原始” Services.js
变量。
我会做的是这样的:SampleService.js
:
SampleService = {
Operation: function() {
alert('operation!')
}
};
export default SampleService;
Services.js
:import SampleService from './SampleService';
var Services = { };
Services.Sample = SampleService;
export default Services;
然后:
import Services from './services/Services';
alert(Services);
alert(Services.Sample);
export default Services;
关于模块的基本(in)依赖性和一致性,这对我来说似乎也更有意义(定义
Services
在 Services.js
中可以做什么而不是 SampleService.js
, SampleService
可以独立于 Services
,加载 Services.js
的模块也不应该依赖于 SampleService.js
因为以后可能会改变,...)。关于javascript - 在 ES6 中使用嵌套类模拟命名空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27400098/