我最近遇到了一个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