this 的指向
约 313 字大约 1 分钟
2025-03-12
注意
需要注意的是,为了避免 this 的指向问题,可以使用 bind()
、call()
、apply()
等方法显式调整函数的 this 的指向。另外,在 ES6 中,可以使用箭头函数来避免 this 指向问题。
一、全局作用域中
在全局作用域中,this 指向 全局对象。
- 浏览器环境中是
window
对象 - Node.js 环境中是
global
对象
二、普通函数中
在函数中,this 的值取决于函数的运行环境:
- 如果函数作为普通函数(
fun()
)调用(不是作为对象的方法或构造函数),this 指向全局对象(非严格模式)或 undefined(严格模式)。 - 如果函数作为对象的方法(
obj.fun()
)调用,this 指向该对象。 - 如果函数作为构造函数调用(通过 new 关键字
xxx = new Obj()
),this 指向由构造函数创建的实例。 - 如果函数使用 call()、apply()或 bind()方法改变内部值域,this 指向参数中的对象。
三、箭头函数中
箭头函数没有自己的 this,它会 继承上下文 中的 this 值。这意味着在箭头函数中,this 指向定义时的外层作用域中的 this。
更新日志
2025/8/24 08:17
查看所有更新日志
e7112
-1于