我无法在 javascript 函数中调用混合函数

I can't call a mixin function inside a javascript function

我正在使用 nuxt.js 开发一个小项目,现在我已经使用 mixin 创建了一个插件,如您所见,但我不知道为什么函数 b 在渲染函数中不起作用:

import Vue from 'vue'


Vue.mixin({
  methods: {

    a () {
      const render = function () {
        this.b()
      }
      render()
    },

    b () {
      alert('testme')
    }

  }
})

由于您使用 function 关键字来定义 render,因此其中的 this 指的是没有 属性 b 的调用上下文 (a) .

解决方法是使用箭头函数:const render = () => this.b();.

const methods = {

  a() {
    const render = () => {
      this.b()
    }
    render()
  },

  b() {
    alert('testme')
  }

}

methods.a()