vue中有很多的回调函数,一定要注意函数中this的作用域。
function(){
this.aaa
……
marker1.addEventListener("click", function(e) {
this.bbb
}
}
此时这里两个this分别指代的对象不同,上面那个指向父方法,下面这个指向子方法。
如果想再子方法中通过this拿到父方法的内容,怎么做
只需要把子方法变成箭头函数即可。
但是这样又会出现一个新的问题,子方法里用this无法取到子方法的内容(因为取得是父方法得)
怎么做比较好
在子方法前对父方法this进行赋值,这样就可以区分子方法和父方法中得this了
function(){
this.aaa
……
const __this = this;
marker1.addEventListener("click", function(e) {
__this.deviceName //指父方法
this.bbb //子方法
}
}