正在回答
3回答
同学你好,要认真看一下哦,这里是调用了debounce,传入了一个函数作为实参。调用的函数会自己立马执行,不是等数据变化了才会执行。debounce自己执行后,返回的就是匿名函数,所以实际上监听的函数就是它里面的匿名函数。

祝学习愉快 ~
好帮手慕夭夭
2020-04-20 19:43:04
同学你好,问题解答如下:
1.这是因为this指向不同了。vue组件中使用普通函数时,this指向组件的实例。$emit是组件实例中的方法,所以可以通过this.$emit拿到。可以输出一下this,此时是组件的实例:

而箭头函数中的this是在函数创建时绑定的,它指向的是vue的配置对象(简单的理解就是组件的配置,不用输入理解它)。配置对象没有$emit方法,所以this.$emit拿不到就会报错。

2.截图的写法就是如下的简写形式,当监听的变量与后面的函数同名时,就可以使用简写形式。

但是这样嵌套了一层函数,监听的就是函数query ,当query执行,才会调用debounce。debounce返回一个匿名函数,但是这个匿名函数没有调用,所以不会执行。

而如下debounce不嵌套在函数中,自己就会执行,会返回匿名函数。也就是本质上,监听query执行的就是这个上面的匿名函数。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星