当 this 争论时:理解回调函数中的 'this'
在 JavaScript 中,函数调用中 this 的值由执行该函数的上下文。然而,当将 this 作为参数传递时,规则可能会变得复杂。
具体来说,会出现以下情况:当回调函数作为参数传递时,为什么不将 this 设置为调用的函数回调?
理解 'this' 的层次结构
要理解为什么 this 被设置在它所在的位置,我们需要考虑函数调用的层次结构:
但是,在 randomFunction 调用之前回调,它使用 this.sumData.bind(this) 创建一个新函数(规则#5)。这个新函数调用原始回调函数,但现在将 this 绑定到 obj(传递给 bind 的参数)。
回调函数的含义
传递方法时作为回调,了解它不会被称为 obj.method() 至关重要。这意味着 this 在回调函数中不会有正确的值。要解决此问题,您可以使用 bind() 在回调中设置 this 的值。
其他有用的注释
以上是为什么“this”不引用 JavaScript 回调中的调用函数?的详细内容。更多信息请关注PHP中文网其他相关文章!