this指向问题

144 阅读1分钟

如何判断this 到底指向的是哪一个对象

主要是看this在哪 1 在全局 this 就是window

2 在function函数中

1. 看函数是不是call apply bind
如果是 call(参数)... this 就是里面的参数
2. 看是不是 new 触发的函数 如果是 那么this 就是 new 的实例对象
注意: 看一下函数return 是否为[数组 对象 函数],如果是 那么this为 return值
3. 普通对象调用 this 就是触发函数的对象
在function函数中,找this指向就是看是谁触发的function 如果是window那么this就代表window
例如 直接在全局中写 fun() 如果是对象触发 如 obj.fun() 此时function中的this就代表着obj

箭头函数

没有this 没有arguments
关键看 箭头在哪里
1 如果在全局 那么this就是window
2 如果在function中 那么this就是function中的this