0

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

import Vue from 'vue'


Vue.mixin({
  methods: {

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

    b () {
      alert('testme')
    }

  }
})
4

1 回答 1

3

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

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

const methods = {

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

  b() {
    alert('testme')
  }

}

methods.a()

于 2020-01-06T18:12:27.923 回答