js中的this指向在不同环境下是不同的
我来简单的概括一下
- 函数中的this指向
在全局环境下指向window
作为对象的一个方法 指向当前对象
作为一个构造函数 this指向构造函数的实例化对象 - 在事件中this指向事件源
- 箭头函数的this指向 指向的是函数定义位置的上下文this。
比如在全局变量下this指向的就是window
如果箭头函数作为对象的方法,那么箭头函数的this指向的就是当前对象
我们可以使用call、apply、bind可以修改this的指向,需要注意的是箭头函数的this指向是不可以被修改的
var obj = {
name: "zhangsan",
work:function(){
console.log(this);
}.bind(xx)
}
console.log(obj.work());
this原本指向obj,bind修改之后this指向的是xx