gpt4 book ai didi

javascript - ECMAScript 模块与对象作为命名空间

转载 作者:行者123 更新时间:2023-12-04 17:06:16 25 4
gpt4 key购买 nike

一段时间以来,我一直在使用 ES6 提供的模块。虽然我(本能地)知道最好使用它们,但我很难解释为什么。

带模块;

  • 我可以做依赖声明(不是注入(inject))。我不必为我加载的每个 javascript 文件使用脚本标记。
  • 在模块之前,对象充当命名空间。现在我们有了模块,我们有了命名空间,这是一个更好的代码组织范例。

  • 除此之外,我为什么要使用模块?

    与仅使用对象作为命名空间相比,它们有什么优势?

    编辑:

    感谢 Bergi 和 Randy Casburn 的评论,我现在可以再指出两件事。
  • 使用模块模式(我将其称为命名空间对象),我们具有相同的功能。但是我们通过闭包来获得它。在模块中,我们有单独的文件。单独文件的特性更难被侵犯。
  • 模块隐藏了它们的内部特征。它驱使我们思考更好的软件设计。
  • 最佳答案

    回答我自己的问题。感谢您的评论。

  • 模块化是软件的必要条件。在 ES Modules 之前,我们通过 实现了模块模块模式 (这只是将相关的东西放在一个对象中)。通过 ES6,模块是原生的。和 原生总是更好的选择 .
  • 在模块模式中,我们制作了带有闭包的模块。在 ES 模块中,我们将它们编码在单独的文件中。
  • 单独的文件增加了另一层防止代码违规的保护。
  • 模块驱使我们设计更好的软件。
  • 使用 ES 模块,我们有 export 关键字,这使我们可以自由选择要公开的内容。
  • 我们还有 import 关键字可以从模块中选择我们想要的任何东西。
  • 使用 ES6 模块,我们现在可以将单独文件中的 Javascript 模块包含到我们的 Web 应用程序中,而无需将它们包含在脚本标签中。
  • 关于javascript - ECMAScript 模块与对象作为命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56808667/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com