我正在使用lodash来消除函数调用,但我想知道为什么我的this
值不像我预期的继承范围。Vue手表[脂肪箭头范围]提供了错误的上下文
这些是我的Vue组件的相关部分。
import debounce from 'lodash/debounce';
watch: {
query: debounce(() => {
this.autocomplete();
}, 200, {
leading: false,
trailing: true
}),
以上的情况下不工作,因为我this
值不指向Vue的组件,而是这样表示的对象:
Object
__esModule: true
default: Object
__proto: Object
是不是我的箭语法假设继承上下文this
?
以下似乎工作正常:
query: debounce(function test() {
this.autocomplete();
}, 200, {
leading: false,
trailing: true
})
有可能是这一个简单的答案,但我希望有人能帮助我在这里。
使用常规的功能,而不是箭头的功能,如果你需要的Vue'this'上下文。你可以在Vue的文档中找到它。 – wostex
您应该仔细阅读箭头功能的工作原理。例如。 http://exploringjs.com/es6/ch_arrow-functions.html – nils
@nils它们的工作方式与我期望的完全相同,只是与Vue显然不同。下面的答案解释更多。 –