08-Module Pattern 模块模式-vanilla篇
随着应用程序和代码库的增长,保持代码的可维护性和独立性变得越来越重要。模块模式使得代码分割成更小的、可重用的部分。 除了此之外,模块还允许您将文件中的某些值保持为私有。默认情况下,模块内的声明的范围到该模块。如果我们不显式导出某个值,则该值在该模块之外不可用。这降低了代码库其他部分中声明的值发生名称冲突的风险,因为这些值在全局范围内不可用。 ES2015 Modules ES2015 引入了内置 JavaScript 模块。模块是包含 JavaScript 代码的文件,与普通脚本相比,其行为存在一些差异。 让我们看一个名为 math.js 的模块示例,其中包含数学函数。 function add(x, y) { return x + y; } function multiply(x) { return x * 2; } function subtract(x, y) { return x - y; } function square(x) { return x * x; } 函数允许用户进行加法、乘法、减法以及获取他们传递的值的平方。 但是,我们不仅仅想在 math.js 文件中使用这些函数,我们希望能够在 index.js 文件中引用它们。但是直接在 index.js 文件内调用会抛出错误: index.js 文件中没有名为 add 、 subtract 、 multiply 或 square 。 为了使 math.js 中的函数可用于其他文件,我们首先必须将它们导出。为了从模块导出代码,我们可以使用 export 关键字。导出函数的一种方法是使用命名导出:我们只需在可公开的部分前面添加 export 关键字。在这种情况下,我们需要在每个函数前面添加 export 关键字,因为 index....