在 Javascript 中,为什么“this”运算符不一致?
在 JavaScript 中,“this”运算符表现出不同的行为,具体取决于调用上下文。这可能会导致混乱和意外结果,特别是在使用回调和对象时。
调用模式和“this”绑定
“this”运算符绑定到函数调用时的对象或类,this 绑定由调用模式决定:
回调难题
当方法的回调作为函数调用时,就会出现问题。由于回调不是作为方法调用的,因此“this”指的是全局范围,而不是它最初打算的对象。
最佳实践
维护的一个策略回调中“this”绑定的一致性是使用“var that = this;”图案。这将对“this”(对象)的引用分配给一个新变量(that),然后可以在回调中使用该变量。
另一个推荐的方法是拥抱 JavaScript 的函数式编程方面并避免依赖类和继承模式。通过使用纯函数和高阶函数,您可以将逻辑与对象状态分离,并实现更加模块化和可预测的代码。
此外,考虑使用 JavaScript 框架,该框架提供了处理“this”绑定和对象的机制。以一致的方式进行面向编程。请记住仔细查看框架的文档和怪癖,以避免意外行为。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3