2015-06-08 112 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()