当前位置:首页 > 问答 > 正文

JavaScript this关键字 JS中this的指向

🔍 JavaScript | this关键字 | JS中this的指向

📌 核心概念

JavaScript this关键字 JS中this的指向

  • this 是 JavaScript 中指向当前执行上下文的对象。
  • 它的值由调用方式决定,而非定义位置。

🎯 this的常见指向

  1. 全局环境 ➡️ window(非严格模式)或 undefined(严格模式)。
  2. 函数调用 ➡️ 默认指向全局对象(非严格模式),严格模式为 undefined
  3. 方法调用 ➡️ 指向调用该方法的对象(如 obj.method()this 指向 obj)。
  4. 构造函数 ➡️ 指向新创建的实例对象(通过 new 调用)。
  5. 箭头函数 ➡️ 继承外层作用域的 this(词法作用域)。
  6. 事件处理器 ➡️ 指向触发事件的 DOM 元素。

💡 改变this指向的方法

JavaScript this关键字 JS中this的指向

  • call() / apply():立即调用函数并显式指定 this
  • bind():返回一个绑定指定 this 的新函数(延迟执行)。

🌰 代码示例

const obj = {
  name: "JS",
  greet: function() {
    console.log(`Hello, ${this.name}! 👋`);
  }
};
obj.greet(); // 输出:Hello, JS!

⚠️ 注意

JavaScript this关键字 JS中this的指向

  • 箭头函数的 this 不可变(无法通过 call/bind 修改)。
  • 回调函数中 this 易丢失,可用箭头函数或 bind 固定。
    更新至 2025-08,符合最新 ECMAScript 规范。

发表评论