gpt4 book ai didi

javascript - 如何在 JavaScript 中保存包含大量全局变量的项目

转载 作者:行者123 更新时间:2023-12-03 08:58:37 25 4
gpt4 key购买 nike

我是 JavaScript 新手,最近接手了一个包含许多 JavaScript 文件的项目。以前从事这项工作的人似乎一直使用大量全局变量而不是任何设计模式。

由于到处引用全局变量,维护起来很困难。并且可以通过直接输入全局变量名称在控制台中查看私有(private)信息。

所以我的问题是我应该如何进一步发展?我非常希望我 future 的代码更有组织性和模块化。

我读到 JavaScript 中没有模块定义我可以

  1. 使用 module patternRevealing module pattern

  2. 使用 Requirejs/commonjs/webpack或许?

我不知道,在阅读了文档之后,我仍然很困惑,如果我使用 module pattern 会有什么不同吗?我自己或介绍另一个requirejs ?他们似乎都能够使我的代码模块化。

最佳答案

我有另一个选择供您尝试 - 尚未完全支持的 es6 模块,但您可以通过在项目中包含 Babel 或 Traceur 来实现此目的。

Requrejs 也是一个不错的选择。我们确实在包含大量 js 文件的大型项目中使用它,并且效果非常好。尽管存在一些特定的瓶颈,但它已经非常清楚地解释了如何避免这些瓶颈。我们以 Backbonejs 为例,它不是 AMDish 库。 AMDish 我调用了一些正确定义的模块或库,以便要求将它们添加到其他模块中。您可以在这里阅读有关正确制作 AMD 模块的信息:http://requirejs.org/docs/api.html (实际上你可以在这里看到你需要的一切。我建议你在对代码进行任何操作之前先阅读 API。虽然有些教程是很好的起点,但它们通常不提供特定的东西,这会给你带来很多痛苦直到您阅读上面的链接。几周前我就在这条船上..)

另一个陷阱是,某些库(例如 underscore.js)在将其包含为 AMD 模块后仍会出现在全局范围内。不过,如果确实需要,您可以寻找解决方法来避免这种情况。

requirejs 在使用垫片添加库依赖项方面也做得非常好。

所以,是的,你绝对可以使用 requrejs,但是有一些观点认为你不应该使用 - http://codeofrob.com/entries/why-i-stopped-using-amd.html

与所有框架和库一样,使用哪一个完全取决于个人喜好。从我的 Angular 来看,如果您想使用 requirejs - 请继续,不要忘记阅读 API!

关于javascript - 如何在 JavaScript 中保存包含大量全局变量的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32385470/

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