javascript之学会吝啬 精简代码

时间:2024-04-19 09:52:21 

1、吝啬你的代码,用最少的代码做最合适的事情;
比如你的代码中用到了很多document.getElementById(),你是否考虑写一个简单的ID选择器


function $(Id)
{
return document.getElementById(Id);
}


2、吝啬你的补丁,不要为了实现功能在现有框架上打补丁,而是框架扩展上写实现,如果框架不能扩展,是否考虑部分重构?
比如你已经拥有一套完整的表单正则验证框架,某天你发现某个表单在严重框架里找不到对应的正则,你可能的做法是追加一个if就能简单的实现,可为何不在验证框架里面扩展一个正则,保持代码的干净呢?
、吝啬代码执行的步骤
比如我们在写ajax代码时,我们经常写如下的代码:


var xmlObject;
function createXMLHTTPRequest()
{
if(window.ActiveXObject)
{  
xmlObject = new ActiveObject("Microsoft.XMLHTTP");
}
else
{  
xmlObject = new XMLHTTPRequest();
}
}


但我们每生成一次对象就要进行一次判断,为何不在第一次生成对象后记忆下来,下次直接new呢?改进后如下


var _ajax = function(){
_self = this;
}
_ajax.prototype = {
/**
* 构建http请求对象
*/
_create: function(){
var factories = [
function(){return new XMLHttpRequest();}, //非IE系列
function(){return new ActiveXObject("Microsoft.XMLHTTP");}, //IE
function(){return new ActiveXObject("Msxml2.XMLHTTP");} //IE某些版本
];
for (var i = 0; i < factories.length; i++) {
try {
if (factories[i]()) {
return factories[i];
}
}
catch (e) {
continue;
}
}
return factory[2];
}(),
}


这段代码看起来视乎比上面执行步骤多很多,但当第一次调用_ajax._create()后,_ajax._create已经被改变成一个兼容当前浏览器的匿名函数,以后的调用都不再会做判断;

标签:javascript,精简代码
0
投稿

猜你喜欢

  • String.indexOf 方法介绍

    2013-06-01 20:22:27
  • python使用turtle库与random库绘制雪花

    2021-02-21 22:51:20
  • border边框在浏览器中的渲染方式

    2010-03-10 10:52:00
  • 详解如何使用Python隐藏图像中的数据

    2022-01-31 21:32:38
  • python数字图像处理像素的访问与裁剪示例

    2023-05-12 11:07:20
  • mysql中自增auto_increment功能的相关设置及问题

    2024-01-16 09:34:13
  • Django框架静态文件使用/中间件/禁用ip功能实例详解

    2023-06-12 02:48:38
  • 基于PyQt5制作一个PDF文件合并器

    2023-04-27 07:50:58
  • python使用分治法实现求解最大值的方法

    2021-07-14 12:06:09
  • 怎样安全地关闭MySQL实例

    2024-01-20 02:39:20
  • python turtle库画圣诞树详细代码教程

    2022-09-20 10:29:33
  • javascript实现双端队列

    2024-05-02 16:18:58
  • Flask框架单例模式实现方法详解

    2023-01-24 17:04:55
  • ASP.NET与数据库相关技巧

    2024-01-26 19:45:23
  • 基于wxPython的GUI实现输入对话框(1)

    2023-01-07 19:54:21
  • Python实例解析图像形态学运算技术

    2021-04-14 10:34:24
  • windows下python安装paramiko模块和pycrypto模块(简单三步)

    2021-11-29 01:18:40
  • Python动态生成多维数组的方法示例

    2023-07-19 04:12:03
  • javascript创建函数的20种方式汇总

    2024-02-26 21:25:06
  • 前端可视化搭建组件值校验规则详解

    2024-04-19 09:42:32
  • asp之家 网络编程 m.aspxhome.com