梳理一下JavaScript中的this与call/apply/bind方法

本文详细解析JavaScript中的this关键字及其在不同场景下的指向,包括全局环境、函数调用、构造函数和箭头函数。同时,介绍了call、apply和bind方法的用法与区别,以及它们如何影响this的绑定。
摘要由CSDN通过智能技术生成

this是什么?

  • this是JavaScript语言的一个关键字。
  • 它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。
  • 函数的不同使用场合,this有不同的值。
  • 总的来说,this就是函数运行时所在的环境对象。

关于this指向的总结:

  1. 在浏览器里,在全局范围内this指向window对象;
  2. 在函数中,this永远指向最后调用他的那个对象;
  3. 构造函数中,this指向new出来的那个新的对象;
  4. call、apply、bind中的this被强行绑定在指定的那个对象上;
  5. 箭头函数中this比较特殊,箭头函数this为父作用域的this,不是调用时的this,要知道前四种方式都是调用时确定,也就是动态的,而箭头函数的this指向是静态的,声明的时候就确定了下来;
  6. apply、call、bind都是js给函数内置的一些API,调用他们可以为函数指定this的执行,同时也可以传参。

作为一般函数执行时,this指代全局对象window

function fn() {
    console.log(this) // Window
}
fn();
console.log(fn)

在函数中,this永远指向最后调用他的那个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值