老师,this.scroll.scrollToElement.apply(this.scroll,arguments)

来源:5-5 listview 基础组件的开发和应用-右侧快速入口实现(1)

慕函数0445997

2019-08-21

this.scroll.scrollToElement.apply(this.scroll,arguments)这句代码没看懂是什么意思

写回答

4回答

ustbhuangyi

2019-08-21

0
0

qq_慕姐8203528

2020-03-13

当触发listview组件中touchstart或者是toushmove触发this.scroll.scrollToElement这个api的时候,会把对应的参数传过来,然后在scroll中会执行scrollToElement这个api函数

0
0

weixin_慕妹0008060

2020-03-08

这是因为不知道scrollToElement要传几个参数,所以需要用函数对象的apply方法。

这里有一个万能的办法,使用bind方法,无需知道要不要传参:

const scrollToElement = this.scroll.scrollToElement.bind(this.scroll)

return scrollToElement

在调用的时候,用一个参数去接return的值就可以了,不过代码写的就啰嗦了。

0
1
qq_慕姐8203528
arguments代表的是所有的参数,你传多少个,都可以变成一个,只要用arguments表示就可以了,他内部的api会解构
2020-03-13
共1条回复

慕村3232222

2020-02-02

this.scroll.scrollToElement()需要两个参数,我觉得这里用apply并不是为了改变this的指向而是一次传入两个参数,因为写成this.scroll.scrollToElement(arguments[0], arguments[1])也是没问题的

0
1
qq_慕姐8203528
对的,这里不需要改变this指向,只是apply可以一个伪类数组的参数罢了,因为一个arguments代表的是所有的参数
2020-03-13
共1条回复

Vue2.0高级应用教学实战,开发企业级移动端音乐Web App

Vue.js高级知识应用大集合,实战企业级APP,教你搞定组件化开发。

5432 学习 · 3804 问题

查看课程