老师问两个问题。。
1.
老师为什么说这里的数组第一个是name啊? 我不太明白这个数组指向哪里去的。
是不是这样的意思?
2.
[].slice.call(arguments, 1, arguments.length));
这段代码要怎么理解啊? slice的用法不是arrayObject.slice(start,end)吗?
这里 套一个call进来 就变成 [].slice.call(this, start, end));的意思吗? 这个写法的先后顺序是怎么样,参数是固定这样的格式吗传入吗? 这样的规定是从哪里来的, 以后要写嵌套这样的代码 如何判断输入参数的先后顺序?
20
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕慕子
2020-02-25 15:15:07
同学你好, 对于你的问题解答如下:
可以这么理解,第二张图的关系对应是正确的。
因为arguments是类数组,并不是真正的数组,无法使用数组独有的slice方法,所以我们通过call方法,让arguments可以借用数组的方法。
参数传顺序是固定的,call方法第一个参数是一个对象,后面接着的第二个、第三个参数也是传入调用方法(就是这里的slice方法)中的参数顺序。
所以说这里的第一个参数arguments是类数组(表示一个对象),第二个参数1是开始索引(start), 第三个参数arguments.length是结束索引(end)
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星