javascript - 组织大型 javascript 文件

标签 javascript jquery

<分区>

我已经开始为网站积累相当多的 Javascript 代码行。到目前为止,一切都在一个文件中,并且该文件变得无法维护。如果一行有错误,整个文件就会中断。

我试过将代码拆分成多个文件,但是有一些跨对象的共享方法,例如:validateEmail(address)

现在,我将我的代码组织成对象,如下所示:

var ProductPage = {
    addToCartBtn: "#add-to-cart",

    init: function() {
        ProductPage.initAddToCartPopup();
        ProductPage.initSidebar();
        ...
    },
    ...
};

然后,我在 $(document).ready 上调用 ProductPage.init()

我的问题是:当将 ProductPage 拆分为单独的文件作为 ContactPage 时,例如我无法访问 ContactPage.validateEmail()。我相信这是因为我的代码包含在 jQuery 中:

(function ($) {
    ...
})(jQuery);

有没有人了解他们是如何组织大型 Javascript 系统的?此外,我计划通过将所有这些放入一个文件并压缩来进行优化。因此,任何有利于可维护性和易于优化的方法都是很棒的。

最佳答案

validateEmail 之类的方法在我看来是功能性的。我所说的函数式是指 y = f(x)。这些函数不会改变状态,但会返回一个输出,该输出将根据传递的输入进行计算

您可能希望将所有这些实用功能方法保存在单独的模块中,并将其标记到全局命名空间。在使用它们之前确保加载这个(这些)实用程序模块

您可以使用 require.js用于依赖管理

关于javascript - 组织大型 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25369145/

相关文章:

javascript - 使用 javascript 获取整个 html 页面作为响应

Javascript 动画无法正常工作

jQuery:发出json请求,在回调中处理它,在回调函数之外访问它?

javascript - 将除一个之外的所有状态属性传递给函数

javascript - 原型(prototype)继承的 knockout 问题

javascript - jQuery scrolling 随机滚动

jquery - 为什么disable_with不适用于rails form_for?

javascript - 使用 JQuery 单击时隐藏 <li> 标签

javascript - 动态图转PDF

javascript - Controller 作为语法不适用于 Angular 1.4.5 var vm = 此模板未显示