关于...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 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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