前端学习笔记(20)之JS中箭头函数的this指向问题

先说一下普通函数的this指向,判断普通函数的this指向,不需要考虑函数的定义环境,只需要考虑函数的调用,谁调用的函数,谁就是该函数的this。

关于ES6中的箭头函数,官方的解释是:
箭头函数里面的 this 是 上下文(context), 外部作用域的 this 就是箭头函数内的 this。

判断箭头函数的this:
技巧它的外层没有函数,this是window。
外层有函数,看外层函数的this是谁,它的this就是谁。

(外层函数可能是常规函数可能是箭头函数,判断外层的this要根据函数种类用不同方法,外层函数是常规函数就看外层函数是被谁调用的,外层是箭头函数就根据刚才说的技巧来判断)

举个小例子:
在这里插入图片描述
这里打印的this就是window。根据刚才讲的规则就可以判断。

最后再补充一点细节:
箭头函数里面的 this 任何方法改变不了,
因为箭头函数没有 this,
call / apply / bind 不能改变 箭头函数的 this 指向。

猜你喜欢

转载自blog.csdn.net/qq_42698576/article/details/108110217