关于...call(arguments, 1)

来源:1-12 几个实用的插件介绍-3

TTrz灬杰

2018-04-16 13:28:54

if(methods[method]) {return methods[method].apply(this, Array.prototype.slice.call(arguments,1))}

call参数,为什么要加上第二个参数“1”?经测试,不管加不加都不影响结果,不知道这第二个参数的意义是什么,还请讲解下,谢谢!

写回答

2回答

怎么都被占用了呢

2018-04-16

第一个参数是方法名,要把去掉方法名后的值作为新的参数,再次传入methods[method]这个方法中。老师在课程中有对这段代码进行分析,建议你再看一遍吧。

0
hTrz灬杰
h 谢谢,因为我听不到,所以并不知道老师有分析郭这一段代码
h018-04-17
共1条回复

怎么都被占用了呢

2018-04-16

第二个参数是用于slice的,从下标为1的位置开始截取arguments,直到数组结束的所有值,将作为参数传入methods[method]这个方法中。

0
hTrz灬杰
h 为什么从下标为1的位置开始截取arguments?如果不从0开始截取,不是会漏掉第一个参数吗,比如设置插件传入的{name,href,fontSize,textDecoration}中的name参数?arguments的下标为0位置的参数具体是什么,还请多多指教,谢谢
h018-04-16
共1条回复

0 学习 · 36712 问题

查看课程