说说 this 的指向
🥏

说说 this 的指向

🤭
想的过于简单了。不过用了 Hook ,赶紧远离 this 这东西

 
原答案:
一般来说是谁调用 this 就指向谁

 
参考:

1. 箭头函数

箭头函数中的 this 指向函数定义时其上下文中的 this

2. new 关键字

使用 new 关键字创建实例时,函数中的 this 指向新创建的实例

3. bind

bind 创建一个新的函数,在 bind 被调用时,这个新函数的 this 被指向 bind 的第一个参数

4. call 和 apply

是立即执行的,这是它俩与 bind 的区别。它俩都可以改变 this 的指向,为第一个参数;第二个参数不同,call 的参数是用逗号分割的,apply 是数组或类数组

5. obj.

function func() {
  console.log(this.x)
}

obj = { x: 1 }
obj.func = func
obj.func() // 1

6. 直接调用

在函数不满足上述场景时,被调用时,this 将指向全局对象