javascript - ES5 IIFE 与 ES6 块
问题描述
我正在 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 声明一样简单。例如:
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 的问答论坛上。不幸的是,一周后没有人回答这个问题,所以我可以推测答案是显而易见的,或者根本没有人在那里。无论哪种方式,我都会冒险求助于社区。
解决方案
推荐阅读
- spring-boot - BeanCreationException:创建名为“Reposit”的 bean 时出错:调用 init 方法失败
- c# - 如何在.net C#中实现的nodejs中转换SHA1哈希函数
- javascript - 替换和反转 - 数组方法数学问题
- r - 当使用函数 'plot' 在 r 中绘制函数时,输出 t 和 y 是什么意思,有哪些参数可用?
- excel - 触发组合框更改事件
- angular - 如何取消选中Angular中forloop中的特定复选框
- javascript - 直接传递 process.stdout.write 与通过回调传递不同的输出?
- sql - SQL 聚合函数 MAX 通过加入删除重复项
- c - 在 C 中“固定”大角度
- image-processing - 为什么我不能使 2D 高斯收敛?