什么是this?

什么是this?

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

JavaScript中的this关键字与代码执行上下文相关,其值取决于函数的调用方式:在全局作用域中指向全局对象,在类中指向类实例,箭头函数则继承外部作用域的this。理解this的使用规则有助于避免常见错误。

🎯

关键要点

  • JavaScript中的this关键字与代码执行上下文相关,其值取决于函数的调用方式。
  • 在全局作用域中,this指向全局对象,在严格模式下则为undefined。
  • 在类中,this指向类的实例,无论是在构造函数还是方法中。
  • 箭头函数的this值依赖于外部作用域的this。
  • 常规函数的this值取决于函数的调用上下文,而不是定义位置。
  • 对象方法中的this值指向对象本身。
  • 可以使用bind、call和apply来控制this的上下文值。
  • bind创建函数的新引用,但不会立即调用,而call和apply会直接调用函数并传递this值。
  • 理解this的使用规则有助于避免常见错误。

延伸问答

JavaScript中的this关键字是如何工作的?

this关键字的值取决于函数的调用方式,可能指向全局对象、类实例或外部作用域。

在全局作用域中,this指向什么?

在全局作用域中,this指向全局对象,但在严格模式下为undefined。

如何在类中使用this?

在类中,this指向类的实例,无论是在构造函数还是方法中。

箭头函数的this是如何确定的?

箭头函数的this值依赖于外部作用域的this,而不是自身的调用上下文。

如何控制this的上下文值?

可以使用bind、call和apply来控制this的上下文值,bind创建新引用而不立即调用,call和apply则直接调用函数并传递this值。

使用this时常见的错误有哪些?

常见错误包括误解this的指向,尤其是在不同的调用上下文中,可能导致意外的undefined或错误对象。

➡️

继续阅读