gpt4 book ai didi

javascript - 避免字符串和硬编码的函数名称——优势?

转载 作者:行者123 更新时间:2023-11-29 15:21:53 29 4
gpt4 key购买 nike

我最近遇到了一个 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 缓存到变量中可以被视为微优化,但我真的很想知道这种做法是否还有其他一般好处 - 可测试性、速度、维护等等?

Legacy IE attachEvent 应该已经死了,所以我认为能够快速使脚本只在这些环境中运行几乎不能算是优势。

最佳答案

你给出的例子看起来很奇怪,我无法想象大多数这些 Action 有任何“良好实践”的理由。我的第一个猜测是,这是某个不确定自己在做什么的人的作品,尽管很奇怪他们也会使用 ECMAScript 6 语法。

另一种可能性是这是生成的代码(例如,某种可视化编程工具或 de-minifier 的输出)。在那种情况下,这种过度分解是很常见的,因为代码是从为防止错误而保守编写的模板生成的;我正在考虑 C 中预处理器宏自由使用括号的方式。

有时,变量声明的编写方式使(对编译器和/或读者)清楚变量持有什么类型的数据。例如,asm.js 代码使用看起来不必要的变量声明作为在常规 JS 之上实现强类型变量的技巧。有时声明是作为一种文档形式编写的(如果您看到 var foo = Math.PI * 0,那可能是为了告诉 foo 是以弧度为单位的 Angular ,否则作者会写成 var foo = 0.0)。但这仍然无法解释类似 var click='click' 的内容。

关于javascript - 避免字符串和硬编码的函数名称——优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43191756/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com