首页 > 解决方案 > 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 中,我们只是使用 {...} 来定义一个模块。其中的变量是特定于块的。我的问题有两个:

  1. 我们还能返回变量,以便其他模块可以使用 ES6 块访问它们吗?

  2. 我们如何通过块设置访问其他模块?我希望它就像包含一个 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 的问答论坛上。不幸的是,一周后没有人回答这个问题,所以我可以推测答案是显而易见的,或者根本没有人在那里。无论哪种方式,我都会冒险求助于社区。

标签: javascript

解决方案


推荐阅读