我正在Udemy上一些课程,以便可以更好地了解JavaScript。在我学习的课程中,我已经被介绍给ES6模块以保护数据隐私。到目前为止,我正在为此目的使用IIFE。我也喜欢IIFE可以用来为大型项目定义模块,如果可以的话,我想使用ES6块,但是我不知道如何从另一个块访问其他块。
可以说我们有一个用ES5编写的JS应用:
var ES5DataModule = (function() {
//some code...
})();
var ES5UIModule = (function() {
//some code...
)}();
var ES5Controller = (function(data, ui) {
//some code...
)}(ES5DataModule , ES5UIModule);
如您所见,在上面的示例中,我已授予ES5Controller对其他两个模块的访问权限。但是在ES6中,我们仅使用{...}定义模块。其中的变量是特定于块的。我的问题是双重的:
我们是否仍可以返回变量,以便其他模块可以使用ES6块访问变量?
如何通过块设置授予访问其他模块的权限?我希望它就像包含一个let声明一样简单。 EG:
let ES6DataModule = {
//some code...
};
let ES6UIModule = {
//some code...
};
let ES6Controller = {
//some code i want to have access to the other 2 modules, but have no idea how to make this happen...
};
我尝试将其作为问题在Udemy的问答论坛上发布。不幸的是,一个星期后没有人回答这个问题,所以我可以推测答案很明显,或者根本没有答案。无论哪种方式,我都会向社区冒险。