Array.prototype.slice.call(param) 解析

1.  为什么不直接调用数组slice?

因为param参数不是数组, 它无法直接调用数组的slice方法,但是我们又想用到数组的这个方法,Array.prototype.slice帮我们做了将param转为数组的工作。

2. Array.prototype.slice

它将param参数转化为数组, 它会去循坏param参数,所以这要求param参数必须具备length属性

3. call方法的作用,它将param参数指向Array.prototype.slice的作用域,Array.prototype.slice中的this就指向了param参数,这样Array.prorotype.slice 可以操作param参数

所以  [].slice.call(param)也可以达到相同的效果

posted @ 2021-01-28 11:05  碗粥  阅读(60)  评论(0编辑  收藏  举报