在jQuery ajax中,data属性下的this指向的为什么会是我的vue实例?如下:
//vue中的数据
data(){
return{
name:'test',
age:18,
}
}
//ajax
methods:{
getData(){
$.ajax({
url:'test.php',
type:'post',
data:{
'name':this.name,
'age':this.age,
}
})
}
}
因为this是写在$.ajax()括号里的,这里data只是相当于一个传进来的对象参数(这里的data格式是一个对象),而并没有去调用这个方法,是我理解错了。
而后面的回调函数中的this才指向ajax中的一个自带的调用他的对象而不是其他。
回调函数的this指向的是jQuery的AJAX配置对象ajaxSettings。在jQuery内部是用s.success代替传入的回调函数去执行的,而success的调用对象就是s,即ajaxSettings对象的缩写。也要注意回调函数中的${this}指向的也不是这个jQuery而同样是上面那个对象s。