各位开发人员,我发现 JavaScript 的 this
关键字有点棘手,尤其是在复杂的场景中。 为了提高我的理解并快速掌握其在各种上下文中的行为(例如在查看代码或文档时),我创建了这个简洁的参考。
关于this
需要记住的要点:
function myFunction() {}
) 通常将其 this
设置为全局 window
对象。在 Node.js 中,它是全局对象。 仅当在特定上下文中调用时才会发生变化:.bind()
、.call()
或 .apply()
显式绑定。() => {}
) 从其周围(封闭)常规函数的作用域(词法 this
)继承其 this
。理解这一点至关重要。this
是在其 创建 时确定的,而不是执行时确定的。 即使它位于对象方法内部,其 this
来自最近的封闭 常规 函数。this
的不变性: 箭头函数具有固定的、不可变的 this
,而常规函数的 this
是动态的,可以使用绑定方法进行更改。this
始终引用使用 new MyClass()
创建的类的实例。无论函数类型如何,这都是一致的。请随意贡献、纠正任何不准确之处或添加更多见解。 建设性的反馈总是值得赞赏!
以上是常规这个,箭头这个(简洁的项目符号)的详细内容。更多信息请关注PHP中文网其他相关文章!