JS中 this指向问题总结

女爷i 2024-04-18 11:13 159阅读 0赞

【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()】,如果没有的话,就使用【谁调用就指向谁规则】

发表评论

表情:
评论列表 (有 0 条评论,159人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jsthis指向问题归纳总结

    最近发现在对JS的学习中有很多朋友对this的指向问题还是有很大的误区或者说只是大致了解,但是一旦遇到复杂的情况就会因为this指向问题而引发各种bug。所以这篇文章主要给大家

    相关 JSthis指向问题

    this(上下文对象) 我们每次调用函数时,解析器都会将一个上下文对象作为隐含的参数传递进函数。 使用this来引用上下文对象,根据函数的调用形式不同,this的值也

    相关 JS this指向问题

    在绝大多数情况下,函数的调用方式决定了 `this` 的值。`this` 不能在执行期间被赋值,并且在每次函数被调用时 `this` 的值也可能会不同,所以总结 `this`