组织大型javascript文件
我已经开始为一个网站积累好几行Javascript代码。到目前为止,所有内容都在一个文件中,并且该文件变得无法维护。如果一行中有错误,则整个文件将中断 我曾尝试将代码拆分为多个文件,但存在一些跨对象的共享方法,如:组织大型javascript文件,javascript,jquery,Javascript,Jquery,我已经开始为一个网站积累好几行Javascript代码。到目前为止,所有内容都在一个文件中,并且该文件变得无法维护。如果一行中有错误,则整个文件将中断 我曾尝试将代码拆分为多个文件,但存在一些跨对象的共享方法,如:validateEmail(address) 现在,我将代码组织成对象,如下所示: var ProductPage = { addToCartBtn: "#add-to-cart", init: function() { ProductPage.ini
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)
。这些函数不改变状态,而是返回一个输出,该输出是根据传递的输入计算的
您可能希望将所有这些实用程序函数方法保存在一个单独的模块中,并将其标记到一个全局名称空间。使用前,请确保加载这些实用模块
你可以使用<强>依赖管理< /St>./P>可能对你有兴趣。你也可以考虑模块:我真的推荐阅读。但事实上,在
Modular JavaScript
上进行任何适当的搜索都会得到一些不错的结果。然而,这是一个太宽泛的话题;因此,将Typescript和RequireJS相结合可以产生出色的应用程序设计(特别是如果您使用的是需要“类”的MVC框架)。TS编译器的速度有一些问题,需要插件,但需要一些小的解决方法。应该注意的是,即使您中断了脚本,任何错误都会从那时起停止所有代码的执行,将其拆分为多个文件对该问题毫无帮助。