请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答

4回答

qq_慕姐8203528 2020-03-13 17:45:41

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

0 回复 有任何疑惑可以回复我~
weixin_慕妹0008060 2020-03-08 22:33:29

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

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

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

return scrollToElement

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

0 回复 有任何疑惑可以回复我~
  • arguments代表的是所有的参数,你传多少个,都可以变成一个,只要用arguments表示就可以了,他内部的api会解构
    回复 有任何疑惑可以回复我~ 2020-03-13 17:47:26
慕村3232222 2020-02-02 16:53:50

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

0 回复 有任何疑惑可以回复我~
  • 对的,这里不需要改变this指向,只是apply可以一个伪类数组的参数罢了,因为一个arguments代表的是所有的参数
    回复 有任何疑惑可以回复我~ 2020-03-13 17:48:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信