这里为什么不可以使用箭头函数
来源:2-1 搜索框组件
琥珀_2020
2020-04-12 20:41:19
watch: {
// 监听query,向外发送事件
// debounce节流函数,防止每输入一次就发送请求
// query: debounce(function () {
// this.$emit('query', this.query);
// }),
query: debounce(() => {
this.$emit('query', this.query);
}),
},
用箭头函数会报错
这是为什么?
1回答
好帮手慕夭夭
2020-04-13
同学你好,这是因为this指向不同了。vue组件中使用普通函数时,this指向组件的实例。$emit是组件实例中的方法,所以可以通过this.$emit拿到。而箭头函数中的this是在函数创建时绑定的,它指向的是vue的配置对象(简单的理解就是组件的配置)。配置对象没有$emit方法,所以this.$emit拿不到就会报错。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题