slice一般用于截取数据的一个片段,结果返回一个数组
slice还可以转化类数组对象,比如arguments
在mdn上有相关的解释
slice
方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组。你只需将该方法绑定到这个对象上。 一个函数中的arguments
就是一个类数组对象的例子。function list() { return Array.prototype.slice.call(arguments); } var list1 = list(1, 2, 3); // [1, 2, 3]
因为[]是继承自Array,所以[].slice跟Array.protptype.slice都是指向同一个方法
[].slice === Array.prototype.slice; // true
于是我们就多了一种转化数组的方法
- 对于可遍历的对象,可以通过Array.from()来转化
- 对于类数组(有length属性的),就可以用[].slice.call()或者Array.prototype.call()来转化
参考资料