如何正确组织JavaScript代码
How do I properly organize JavaScript code?
我有大量的方法集合,我想把它们塑造成一个库。我该如何开始这个过程?
这是整合工作的开始:我正在尝试决定是否应该对我的整个代码库这样做-将类似的项移动到JavaScript对象中。
下面是整个代码库所遵循的整合工作:
我应该这样塑造我的代码吗?
整合努力:
var menu = {
menu_timer:0,
menu_element:0,
/* called when mousing over the top menu item */
top_mouse_over: function (id)
{
menu.bottom_mouse_over();
menu.menu_element=document.getElementById(id);
menu.menu_element.style.visibility='visible';
},
/* hide the menu when the timer runs out */
hide_menu: function()
{
if(menu.menu_element)menu.menu_element.style.visibility='hidden';
},
/* keeps the menu open by clearing the timer when mousing over the menu items */
bottom_mouse_over: function()
{
if(menu.menu_timer)
{
window.clearTimeout(menu.menu_timer);}
},
/* set the timer to hide the menu, required by clearTimeout */
mouse_out: function()
{
menu.menu_timer=window.setTimeout(menu.hide_menu, 1000);
}
};
完整代码库:
移动到codereview
首先,重构。
没有理由存在称为16
或m6
的函数
几点建议:
-
使用jQuery, Dojo, Zepto或任何其他库用于AJAX调用和鼠标/键盘事件。没有理由重新发明轮子。现在需要在世界上的每个浏览器上测试AJAX函数。jQuery的AJAX函数已经测试过了
-
尝试使用prettyDate代替
view_date
-
为什么要最小化函数名?原因是什么?压缩机可以为您做到这一点。说真的,你怎么能处理这个呢:
函数m2(a,b) {返回. getelementbyid(一).innerHTML = b;}
-
查看模板函数(如_。模板,jQuery。模板,胡子等)。查看可能使您的工作更容易的验证插件
-
你有800行代码。你可以把改成200行可读的代码
-
关于使它成为一个库:根据上下文,我通常使它成为一个jQuery插件或使用_.extend。将其命名为
var menu = {}
就足够了,尽管我会选择一个比菜单更相关的名称。
你的新方法确实是一种改进。您可以自由地使用自己的风格,但是我会考虑采用传统的方法来生成文档。此外,如果您利用诸如jQuery或Prototype之类的库,您将能够适应它们的风格,而不是发明自己的风格。(我保证它不会扼杀你的创造力。)
最后,您可以考虑使用一个不太可能在全局中被覆盖的名称来为对象设置伪名称空间。"窗口。"菜单"让我觉得有点危险。将标记为核心对象,同时为其命名
阅读Paul Irish的(Google Chrome, jQuery)启动特定页面代码的方法。
http://paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- JavaScript代码问题:我正在将对象转换为数组
- Javascript阻止其他Javascript代码
- JavaScript代码未正确检查ajax请求
- 如何调试Javascript代码或函数
- 为什么我在这个javaScript代码中使用NaN
- 将javascript代码转换为jquery代码时出错
- 如何从Objective-C代码中调用javascript代码
- 有什么工具可以轻松读取javascript代码吗
- 这个javascript代码是如何编写的
- 如何解密此javascript代码
- SIMPLE Javascript代码,用于显示谷歌电子表格中单个字段的数据
- HTML标记,包含带引号的JavaScript代码中的引号
- 如何在Win8Metro应用程序的Javascript代码中捕获自己的C#事件
- addEventListener的Javascript代码不工作!?(单击时打开放大的img)
- JavaScript代码无法在表单上呈现部分
- 以下 JavaScript 代码与 Facebook 相关
- 使用解析为javascript源的.php,如何使用条件语句将javascript代码封装在php括号之间