我无法在 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()
我正在使用 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()