采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
this.scroll.scrollToElement.apply(this.scroll,arguments)这句代码没看懂是什么意思
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/applyapply 方法了解一下
当触发listview组件中touchstart或者是toushmove触发this.scroll.scrollToElement这个api的时候,会把对应的参数传过来,然后在scroll中会执行scrollToElement这个api函数
这是因为不知道scrollToElement要传几个参数,所以需要用函数对象的apply方法。
这里有一个万能的办法,使用bind方法,无需知道要不要传参:
const scrollToElement = this.scroll.scrollToElement.bind(this.scroll)
return scrollToElement
在调用的时候,用一个参数去接return的值就可以了,不过代码写的就啰嗦了。
arguments代表的是所有的参数,你传多少个,都可以变成一个,只要用arguments表示就可以了,他内部的api会解构
this.scroll.scrollToElement()需要两个参数,我觉得这里用apply并不是为了改变this的指向而是一次传入两个参数,因为写成this.scroll.scrollToElement(arguments[0], arguments[1])也是没问题的
对的,这里不需要改变this指向,只是apply可以一个伪类数组的参数罢了,因为一个arguments代表的是所有的参数
登录后可查看更多问答,登录/注册
Vue.js高级知识应用大集合,实战企业级APP,教你搞定组件化开发。
1.5k 32
2.0k 31
1.6k 26
1.5k 25
1.9k 24