setTimeout中函数内的this是指向了window对象,setInterval同理
如果想要让setTimeout中的this不指向window,可以使用以下常用办法:
方法一:使用之前重新指向到一个变量,然后操作这个新的变量
if (paramObj.id != null) {
var that = this;
setTimeout(function() {
that.$emit("getResponseData", paramObj);
});
}
微信小程序中经常见到重新定义this的指向that,之后操作that
方法二:
使用ES6的箭头函数
setTimeout(() => {
console.log(this.a);
}, 1000)