Introduction
This指向问题是JavaScript面试中必考的问题,今天我们就来将this有关的面试题一网打尽!解答此类面试题的关键是 函数是以何种方式调用的
,拿到题目后,先确定函数的调用方式
,再根据调用方式来判断this的指向。
根据调用方式的不同,this的指向有以下几种情况:
- 作为普通函数调用, this指向全局对象。
- 作为对象方法调用, this指向调用方法的对象。
- 作为构造函数调用, this指向新创建的对象。
- 使用apply、call、bind调用, this指向指定的对象。
- 箭头函数中的this, this指向其父级作用域的this。
setTimeout
函数中的this。- DOM环境中的this。
Conclusion
This的指向只和函数的调用方式相关,与函数的定义位置无关。在面试中,如果遇到this指向的问题,先确定函数的调用方式,再根据调用方式来判断this的指向。