this不同场景指向不同,默认指向window。
this指向被改变常见的是在定时器(setTimeout、setInterval)中,以此为例,那么如何避免呢?
1、使用es6箭头函数
setTimeout(()=>{
this.$router.replace('/audited');
}, 2000)
2、在setTimeout外部声明this
var _this = this;
setTimeout(function(){
_this.$router.replace('/audited');
}, 2000);
3、Function.prototype.bind()方法
setTimeout(function(){
this.$router.replace('/audited');
}.bind(this), 2000)