this 是 JavaScript 中动态确定的关键字,指向函数调用时的上下文对象,具体取决于调用方式:普通调用时非严格模式指向全局对象、严格模式为 undefined;作为对象方法调用时指向该对象;构造函数或 class 实例方法中指向新创建的实例;箭头函数无自身 this;可通过 call/apply/bind 显式绑定。

this 是 JavaScript 中的一个关键字,它不是一个固定值,而是在函数执行时动态确定的,指向**当前函数调用的上下文对象**。它的具体指向完全取决于函数**如何被调用**,而不是函数定义的位置或方式。
普通函数调用时的 this
在非严格模式下,直接调用函数(如 fn()),this 指向全局对象(浏览器中是 window,Node.js 中是 global);在严格模式下,this 为 undefined。
- 不推荐依赖这种调用方式判断 this,容易出错且可读性差
- 可通过 use strict 主动避免意外绑定到全局对象
作为对象方法调用时的 this
当函数作为对象的属性被调用(如 obj.method()),this 指向该对象(即点号左边的对象)。
- 这是最常见也最符合直觉的 this 绑定场景
- 注意:如果把方法单独提取出来(如 const fn = obj.method;),再调用 fn(),就变成普通调用,this 不再指向 obj
构造函数与 class 中的 this
使用 new 调用函数时,this 指向新创建的实例对象;在 class 的实例方法中,this 默认指向该 class 的实例。
本文档主要讲述的是Python开发网站指南;HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器 Python和其他程序语言一样,有自身的一套流程控制语句,而且这些语句的语法和其它程序语言类似,都有for, if ,while 类的关键字来表达程序流程。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
立即学习“Java免费学习笔记(深入)”;
- 构造函数内部的 this 是新对象,可用来初始化属性和方法
- 箭头函数不能用作构造函数,也没有自己的 this,会沿作用域链向上找
显式绑定与 call/apply/bind
可以用 call、apply 或 bind 显式指定函数运行时的 this 值。
- fn.call(obj, arg1, arg2) 立即执行,this 设为 obj
- fn.bind(obj) 返回一个新函数,this 永远绑定为 obj
- 常用于事件回调、定时器或高阶函数中“固化” this










