如题我要将一个类数组转换成真正的数组在es6之前要使用slice去处理,像对函数的对象arguments进行转换成数组,可以用 Array.prototype.slice.apply(arguments);谁能讲解一下这段里面到底是一个怎样的过程,为什么它能够实现将它转化成数组?
如题我要将一个类数组转换成真正的数组在es6之前要使用slice去处理,像对函数的对象arguments进行转换成数组,可以用 Array.prototype.slice.apply(arguments);谁能讲解一下这段里面到底是一个怎样的过程,为什么它能够实现将它转化成数组?
照着规范的流程,自己看看推演一下就明白了:
Array.prototype.slice (start, end)
简而言之一句话,当slice()
没有输入参数的时候,会创建一个新数组,然后把当前数组的所有元素扔进去,最后返回这个新数组。
8 回答4.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
直接看slice怎么实现的吧。其实就是将array-like对象通过下标操作放进了新的Array里面: