老师,请问这块什么意思,课程内容没有看懂
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【代码语言】突出显示
25
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕言
2020-11-27 10:47:56
同学你好,解答如下:
1、 [].prototype.slice.call(arguments, 1, arguments.length)表示将传入的参数转成数组。我们来了解一些概念:
[]是javascript的一个引用类型,其原型prototype上有一个方法叫slice
slice: 可从已有的数组中返回选定的元素
call: 用来改变对象中函数内部的this指向问题
能用slice方法的,要有length属性,需要注意:虽然arguments有length属性,但是他不是数组类型, 没有slice方法,所以呢,[].prototype.slice()执行的时候,Array.prototype已经被call改变this指向, 指向arguments了,使用slice方法截取arguments传入的两个参数。
我们可以打印一下, 查看结果
打印结果:
2、视频中老师提到,实际传入参数的个数是不确定的,所以不能够直接写死,使用arguments获取到所有参数,经过第一条的分析后可知转换后的结果是一个数组,但是operation[name]方法传递的参数是单个分开传入的,不符合格式,所以这里要用到apply方法,将参数以数组的形式传入。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星