JS中 this指向问题总结

【this】指向
1.全局下 【this】指向的是【window】
2.函数中 【this】谁调用指向谁
3.事件处理函数中 【this】谁触发指向谁,谁绑定指向谁
4.对象中的【this】默认的指向当前对象
5.箭头函数中没有【this】但是当箭头函数中出现【this】时,箭头函数中的【this】会往父域中走,相当于父域中【this】指向,因为箭头函数中没有【constructor】属性,不能做构造函数,所以没有【this】
6.构造函数中的【this】指向的是构造的对象
7.如果函数中含有【bind()】,【call()】,【apply()】该怎么办呢?
7.1含有【bind()】时,
- 参数一:改变this指向,参数二到参数N,需要用逗号分开,是给被改变【this】指向【函数】传输【实参】。
7.2含有【apply()】时,
-参数一:改变【this】指向,参数二:是给数组,也是给 apply前面的【函数传输实参】
-注意:call()和apply()只存在于函数对象中,能且只能改变函数方法体中的【this】指向
-作用二:可以执行前面的函数
7.3含有bing()时,
-改变【this】指向,返回【被改变this】的【新函数】
-只能改变【function】函数中的【this】
-参数为【this】指向的对象
-左边函数需要【手动触发】
8.如何判断【this】指向问题:
-第一步:看【this】在哪
-第二步:区分【this】在什么函数中
-第三步:看函数后面是否有【bind(),call(),apply()】,如果没有的话,就使用【谁调用就指向谁规则】

你可能感兴趣的:(this指向)