2015-06-08 64 views
2

我上,我写了一首歌香草JS的SE userscript工作的名称。它主要通过DOM操作工作,所以我经常使用document.getElementByIddocument.querySelector以及其他类似的功能。这些功能运行良好,但时间很长,即使我已完成制表符,我想缩短写出这些内容所需的时间。我曾想过使用另一个名称较短的函数来替换这些较长的函数。要更换document.getElementById,我想有一个函数名byId,将采取在ID字符串,id,作为参数,然后返回调用iddocument.getElementById的价值。该功能将类似于缩短JavaScript函数

function byId(id) { 
    return document.getElementById(id); 
} 

byId('id-name'); 

我见过a similar SO question有关调试有人试图做到这一点,但我尝试它的作品然后可以简称。我只是想知道这种做法是如何看待。

所以,应这种做法被使用?这可能会恶化性能,甚至会破坏程序的功能吗?有没有什么可以帮助帮助(除了缩短函数名称)?

+0

为什么不直接使用'VAR byId = document.getElementById.bind(本)'作为链接的问题提出? – Jamiec

+0

@Jamiec在我写完大部分问题之前,我实际上并没有看到这个问题,所以我只是决定保留原来的东西。 – michaelpri

+0

如果要关心其他人阅读你的代码,我不会那样做。你说你有选项卡完成,那么问题是什么呢? – igor

回答

3

这当然不太清楚。当程序员看到document.getElementById时,他们会知道这意味着什么。当程序员看到byId时,他们不知道正在做什么动作(没有动词),或者可能会提到什么样的标识。然后,他们将查找定义并参见document.getElementById,它打败了包装它的所有可能的可读性增益。

2

您的使用不具有显著的性能缺点。这也不容易出错,除非您引用了其他可能在全局范围内定义byId()方法的脚本。除了易于使用之外,我看到的唯一优势是减少了客户端浏览器需要下载的JavaScript大小,如果有大量使用document.getElementById()