关于...call(arguments, 1)

关于...call(arguments, 1)

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

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

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

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

  • TTrz灬杰 提问者 #1
    谢谢,因为我听不到,所以并不知道老师有分析郭这一段代码
    2018-04-17 14:33:48
怎么都被占用了呢 2018-04-16 14:10:06

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

  • 提问者 TTrz灬杰 #1
    为什么从下标为1的位置开始截取arguments?如果不从0开始截取,不是会漏掉第一个参数吗,比如设置插件传入的{name,href,fontSize,textDecoration}中的name参数?arguments的下标为0位置的参数具体是什么,还请多多指教,谢谢
    2018-04-16 16:19:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师