vue组件内函数相互调用问题

vue在同一个组件内;
methods中的一个方法调用methods中的另外一个方法;
可以直接这样调用:

functionA() {
    this.$options.methods.functionB();
}

这样是没有考虑this作用域的问题的情况,如果你调用的functionB()函数不包含对vue事例中中对data数据的修改和调用(准确说没有调用vue的实例对象的东西),这样调用无可厚非的,比如:

functionB() {
    console.log('2b');
}

但是如果有用到this. ,控制台就会报某个属性找不到的错误,这是因为functionB中的this实际指向的是调用它的functionA,我们只需要对调用方法绑定作用域就可解决,像这样:

this.$options.methods.functionB.bind(this)();


 

你可能感兴趣的:(web探索之路)