由于性能问题、潜在的安全风险及其不推荐使用,许多开发人员不赞成向 setTimeout 传递字符串的做法地位。然而,在极少数情况下,这种语法可能是有益的。
setTimeout 和 setInterval 的传统语法涉及传递一个表示要执行的代码的字符串。例如:
setTimeout('doSomething(someVar)', 10000);
然而,现代 JavaScript 提倡使用函数引用:
setTimeout(function() {
doSomething(someVar);
}, 10000);
在考虑是否有任何正当理由偏离推荐语法时,就会出现争论。一个可能的论据可能是希望访问驻留在全局范围内但可能已在本地覆盖的函数或变量。
尽管有这一基本原理,但使用字符串强烈建议不要使用 setTimeout。全局变量仍然可以通过窗口对象的属性来访问。例如:
setTimeout(window.doSomething(someVar), 10000);
允许将字符串作为 setTimeout 和 setInterval 的参数根源于历史因素。 JavaScript 的早期版本仅支持字符串。添加传递函数引用的功能是后来添加的。为了确保向后兼容性,浏览器仍然允许字符串语法,即使它已被弃用。
虽然在某些情况下在技术上可以将字符串传递给 setTimeout,但实践通常不可行由于存在替代方法而推荐。使用函数引用可以提高性能、增强安全性并遵守现代代码准则。因此,为了清晰、可维护性和整体代码质量,应避免使用已弃用的字符串语法。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3