我最近遇到了一個JavaScript腳本,其中作者似乎試圖避免他的代碼中的字符串,並將所有內容都分配給一個變量。避免字符串和硬編碼函數名稱 - 優勢?
所以不是
document.addEventListener('click', (e) => { /*whatever*/ });
他會寫
var doc = document;
var click = 'click';
var EventListener = 'EventListener';
var addEventListener = `add${EventListener}`;
doc[addEventListener](click, (e) => { /*whatever*/ });
雖然緩存document
到一個變量可以被視爲微的優化,我真的不知道是否有這種做法的其他任何好處一般來說 - 可測試性,速度,維護,什麼?
傳統的IE attachEvent
應該已經差不多了,所以能夠快速讓腳本在這些環境下運行,我認爲這並不是一個好處。
也許他害怕失去工作,並寫下只能由他維護的代碼...... :-) – baao
這對我來說似乎很奇怪 - 儘管避免[魔術字符串](https:///en.wikipedia.org/wiki/Magic_string),並且將字符串存儲在字符串可能會更改的變量中,但語義「var」名稱將保持不變是很好的做法,我無法想象如何執行前端Web工作'click'會改變,或者'document'會以某種方式成爲不同的對象...... –
版權陷阱,也許? – Schlaus