概述
以前写代码的时候总是遇到这个this的使用,尤其是使用了vue之后,this的使用更是很频繁。而且this在使用的时候发现了在箭头函数中正常,在普通函数中就不正常。这里就说说这个this在箭头函数和普通函数中的区别。
箭头函数
在箭头函数中,this指向的是方法所在的环境。
$.ajax({
type: "get",
url: "/test",
success: (msg) => {
console.log(this);
}
});
如果我的这个ajax只是在一个简单的js方法里面,这个this指向的就是window这个环境。
如果我的这个ajax是在vue的methods方法里面,那么这个this指向的就是这个vue对象。
普通函数
普通函数中,this指向的是调用这个方法的对象。
$.ajax({
type: "get",
url: "/test",
success: function(msg) {
console.log(this);
}
});
因为这个方法是被ajax调用的,所以这个this的指向就是ajax这个对象。