【问题标题】:ES6 modules: Are functions and variables not available in global spaceES6 模块:函数和变量在全局空间中不可用吗
【发布时间】:2019-08-06 16:07:21
【问题描述】:

ES6 中的所有内容都是模块的一部分。 例如。如果我写在一个文件中。

function simpleFunc(){
 console.log("test")
}

此功能是否不可用于其他地方的代码。在普通的 javascript 中,这个函数也可以在 html 脚本中执行。

模块的整体概念是什么。我知道污染全局命名空间是一种不好的做法,但是当我们导出函数或常量时,它只是一种避免污染全局命名空间的方法。开发者还能不能把var a= 10写在js文件里,浪费所有维护模块的精力。我想这仍然是可能的,因为 es6 应该与 js 向后兼容。

简单来说我的问题归结为:当语言为 ES6 时,js 文件是否不同。

【问题讨论】:

    标签: es6-modules


    【解决方案1】:

    不知道为什么还没有人回答这个问题,这是一个简单的答案,所以我会回答它以防其他人偶然发现它:

    Javascript 就是 javascript。

    在脚本放置方面,ES5 实践仍然适用于 ES6。模块化允许您将代码从一个脚本导入到另一个 - 这可以帮助您保持大型应用程序的可维护性以及许多其他结构优势。 此外,您没有污染全局命名空间是正确的 - 模块也是命名空间容器,它保护了全局命名空间。

    这里引用了一个好的(完整的)explanation 对模块重要性的引用:

    模块化是任何软件开发的基本必要条件。将事物分解成更小的功能块使我们能够重用代码。模块也是命名空间的容器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 2016-02-25
      • 2023-04-06
      • 2021-12-27
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      相关资源
      最近更新 更多