各种函数的this指向
- 普通函数 – 指向window
function fn() {
console.log(this);
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/857b0c566598626d60b7905d03dd7409.png#pic_center)
- 构造函数中this – 实例对象
function Student(name) {
this.name = name;
console.log(this);
}
const stu = new Student('张三');
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6382197f31d824af29df486394aed1c8.png#pic_center)
- 原型方法中this – 实例对象
Student.prototype.sing = function () {
console.log(this);
}
stu.sing();
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a563bd4e2e1575c67c7a52c461e2ab55.png#pic_center)
- 对象中的方法中的this – 实例对象
let obj = {
name: '李四',
sayHi: function () {
console.log(this);
}
}
obj.sayHi();
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/add972aaa3c6c0c7219aa0c36d1ebafc.png#pic_center)
- 定时器函数里面的this – window
setTimeout(function() {
console.log(this);
}, 1);
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a07e4d858f537068d5070b6e38e529ab.png#pic_center)
- 事件绑定的this – 事件源
document.addEventListener('click',function(){
console.log(this);
})
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3123298c56789c4e486390f6d1f08004.png#pic_center)
- 箭头函数中的this,没有默认指向,一般指向外层函数this
document.addEventListener('dblclick',()=>{
console.log(this);
})
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2c197c2776552b64189505add5b21c64.png#pic_center)